Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.13;
Скачать: CL | DM;

Вниз

Пример работы с базой (хочу идеальный код)   Найти похожие ветки 

 
Dust ©   (2006-06-03 13:41) [0]

Имеет ли смысл всю работу с базой переносить в дата-модуль?
стоит ли описывать класс типа TMyDatabase, и тд и тп...?


 
DSKalugin ©   (2006-06-03 15:26) [1]

1-да, это логичней, чем размазывать его по всем модулям. Под кнопками и другими элементами управления должны быть только процедуры управления ходом выполнения программы и вызовы готовых процедур обращения к БД, опи санных в датамодуле.

2-он уже описан в компонентах прямого доступа IBObjects, FibPlus, IBX, dbExpress. Так что достаточно воспользоваться готовым, например
MyDatabase: TpFIBDatabase;


 
atruhin ©   (2006-06-03 16:26) [2]


> 1-да, это логичней, чем размазывать его по всем модулям.

Известный вариант, но есть недостатки, в достаточно большом проекте этот модуль может получится огромных размеров, плюс все модули должны иметь на него ссылки, затрудняется работа в комманде.
Есть другой вариант, главное окно предоставляет интерфейс через который можно получить коннект к БД, транзакциям и т.д., а также управляет созданием закрытием окон. Например по имени класса окна:
 FormClass := GetClass(ClassName);
 if Assigned(FormClass) then begin
   WinClass := TfrmAbstractChild(FormClass.NewInstance);
   (WinClass as ICreateObject).Init(ObjID, self ....);
   WinClass.Create(self);
Окно получает ссылку на документ, с которым должно работать и ссылку на интерфейс. Вся работа с БД НЕОБХОДИМАЯ ЭТОМУ ОКНУ осуществляется в нем. В целом окно ни чего не знает о других окнах, включая главное, а оно не знает о дочерних. В таком варианте отдельные окна могут разрабатывать разные люди, также очень легко олаживать модифицировать т.к. мы имеем небольшие абсолютно независимые модули.


 
Курдль ©   (2006-06-05 11:44) [3]


> хочу идеальный код


Идеальный - не получится. Если хотите оптимальный - надо много читать.
Рекомендую почитать про GRASP и GoF. (Ларман, Гамма и т.п.) Как раз там объясняют, как правильно "делить" программы на модули.



Страницы: 1 вся ветка

Текущий архив: 2006.08.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.063 c
15-1153114530
Ega23
2006-07-17 09:35
2006.08.13
С Днём рождения! 15-17 июля


2-1153989869
crazy_corpse
2006-07-27 12:44
2006.08.13
Opera вместо IE


15-1153320537
k2
2006-07-19 18:48
2006.08.13
Такие люди работу ищут :) эх не ценят у нас молодежь :)


3-1149885157
Андрей11111
2006-06-10 00:32
2006.08.13
Поиск как в на платформе F1


6-1143620055
Std
2006-03-29 12:14
2006.08.13
Определение IP