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

Вниз

Структура программы   Найти похожие ветки 

 
RayGun ©   (2006-02-17 21:30) [0]

Здравствуйте, уважаемые Мастера!

Согласно современным требованиям при создании более-менее крупного проекта рекомендуется придерживаться разделения структуры классов программы на графический интерфейс (GUI), бизнес-логику, уровень доступа к данным (DAL) и, при необходимости, железный уровень (HAL).
Так вот, вопрос: где провести границу между бизнес-логикой и DAL? Не противоречит ли этой идеологии обращение из GUI  непосредственно к TDataSet и его потомкам, расположенными в DataModule, или же следует использовать для этого дополнительную прослойку в виде классов бизнес-логики с методами типа GetXXX, CreateXXX и UpdateXXX (я не имею в виду формы, содержащие TDBGrid и его аналоги типа UltraGrid и т.п., для них уже как бы есть прослойка)?
Какую посоветуете литературу по правильному проектированию структуры программы?


 
API   (2006-02-17 21:37) [1]

Это смотря насколько абстрагироваться.
Для кого и TDataSet - служба данных.

Какую посоветуете литературу по правильному проектированию структуры программы?

Брандт Д., Architectures. Exam 70-100.- СПб.: Питер, 2001.- 432 с.: ил.

Но лучше - поработать пару лет в группе.
А то можно такого напроектировать...


 
Игорь Шевченко ©   (2006-02-17 21:41) [2]


> Не противоречит ли этой идеологии обращение из GUI  непосредственно
> к TDataSet и его потомкам, расположенными в DataModule


Вообще-то противоречит, но писать полный аналог data-aware controls для разрешения этого противоречия является, на мой взгляд, довольно неблагодарным занятием, так как немалый объяем работы будет потрачен на повторение уже сделанного.


> Какую посоветуете литературу по правильному проектированию
> структуры программы?


Мартин Фаулер, Архитектура корпоративных приложений, но для Delphi оттуда можно взять только часть.

В электронном виде часть материалов выложена на сайте автора
http://www.martinfowler.com на английском языке.


> (я не имею в виду формы, содержащие TDBGrid и его аналоги
> типа UltraGrid и т.п., для них уже как бы есть прослойка)


Для них тоже нет прослойки, потому что такие формы обращаются к Dataset, минуя методы объекта бизнес-логики, отсюда получается, что единой точки доступа к данным с учетом бизнес-правил не существует. кроме того, такие формы работают с данными, а не с объектами, что в общем-то тоже противоречит чистой теории.

Пример альтернативной разработки data-aware controls можно найти в
http://www.techinsite.com.au/tiOPF/Download.htm
(Object Persistent Framework)

С наилучшими,


 
RayGun ©   (2006-02-17 21:50) [3]

Большое спасибо!

В группе работал, но не на Delphi/CPP Builder, а на Visual Studio .Net (C#), там у нас использовался ADO.NET, а теперь возникла задача использовать Delphi или Builder. Вот в связи с этим и приходится разбираться с правильным построением структуры программы на Delphi/Cpp Builder, чтобы не создавать проги, написанные на ButtonClick.


 
Desdechado ©   (2006-02-17 22:41) [4]

<off>
одни бегут с дельфи на C# из-за продажи борландом, а другие мигрируют в обратном направлении
мда....
</off>



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

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

Наверх




Память: 0.48 MB
Время: 0.053 c
2-1141197162
Wel
2006-03-01 10:12
2006.03.19
Массив jpg из файла


15-1140725504
Piter
2006-02-23 23:11
2006.03.19
Обрушилась крыша на Басманном рынке


8-1128513394
VHS
2005-10-05 15:56
2006.03.19
DSPack Возможно ли рисование в канве TVideoWindow ?


1-1139913835
Dima1
2006-02-14 13:43
2006.03.19
Вопрос по ABBYY lingvo


3-1138173453
flad
2006-01-25 10:17
2006.03.19
Oracle-TOAD, Interbase- что?