|
|
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
Допустим мы пишем программу для работы с БД, например это система учета клиентов, стоит ли дублировать классы сущностей, то есть классы, которые отражают предметную область? Я много раз видел нечто подобное: class MainClass { ArrayList Clients void GetConnection(){} void AddClient(Client x){} } class Client { string Name string Manager ..... } то есть получается у нас предметная область в базе раскладывается на таблицы, а в приложении на соответствующие классы. Такая архитектура подходит, если база небольшая и в коллекцию или датасет можно полностью запихнуть содержимое всех таблиц. Но что делать, если база огромная - гигабайты, не будем же мы всю ее копировать в оперативную память в соответствующие классы, как в таком случае грамотно построить классы приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 13:41 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
О чем Вы? Например в многих популярных ORM есть такое понятие как "отложенная загрузка" (lazy loading). Пихать все в ОП это архитектурный бред, кстати так же как и GetConnection() который у Вас всплыл :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 17:21 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
Неправильное понимание подобной архитектуры. Архитектура предполагает, что в коллекцию ложатся не сами объекты целиком, а ссылки (REFS) на них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2009, 19:18 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
Kachalov, а где об этом можно прочитать, можете что-то посоветовать - статью или книгу aston, "Неправильное понимание подобной архитектуры. Архитектура предполагает, что в коллекцию ложатся не сами объекты целиком, а ссылки (REFS) на них." К Вам та же просьба ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2009, 12:22 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLansа где об этом можно прочитать, можете что-то посоветовать - статью или книгу - в документации по ORM , который Вы планируете использовать (к сожалению, из первого поста не совсем ясно о какой ОС, языке, БД и т. д. идет речь). Например можно почитать документацию по Hibernate . Что касается http://en.wikipedia.org/wiki/Lazy_loading] lazy loading , то Гугл Вам в помощь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 12:53 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLans, если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны. Я имею ввиду классы бизнес-сущностей. РСУБД - DAL(ADO\...) - DBAware(Grid\...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2009, 18:49 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
Petro123MLans, если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны. Я имею ввиду классы бизнес-сущностей. РСУБД - DAL(ADO\...) - DBAware(Grid\...) То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 15:20 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLansPetro123MLans, если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны. Я имею ввиду классы бизнес-сущностей. РСУБД - DAL(ADO\...) - DBAware(Grid\...) То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например? Абсолютно правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 15:24 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLans, бывают, например ГИС приложения. Там гридов маловато, а вот классов на клиенте полно. и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 16:14 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
А как лучше тот же конекшн сделать? один на все приложение или для каждого грида - свой конекшн, датасет, дата адаптер и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 14:11 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLans, как хош - была инфа, что MS рекомендует на каждый.... (поработал с окном - всё закрыл) - но Connect происходит долго, поэтому я на один МОДУЛЬ делаю один TADOConnection (в каждое окно передаю ссылку на него) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 15:09 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLansPetro123MLans, если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны. Я имею ввиду классы бизнес-сущностей. РСУБД - DAL(ADO\...) - DBAware(Grid\...) То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например? Нормальная, если выбираешь выполнение логики на сервере (+/-): + возможностей меньше - быстродействие выше Есть вариант выполнять логику на клиенте, тут все наоборот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 15:54 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLansА как лучше тот же конекшн сделать? один на все приложение или для каждого грида - свой конекшн, датасет, дата адаптер и т.д. Каждый коннект хавает ресурсы. Для слоника есть даже диспетчер коннекшинз. Так что думай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 15:56 |
|
||
|
Как правильно спроектировать классы?
|
|||
|---|---|---|---|
|
#18+
MLansPetro123MLans, если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны. Я имею ввиду классы бизнес-сущностей. РСУБД - DAL(ADO\...) - DBAware(Grid\...) То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например? Нормальной такую ситуацию можно назвать с очень большой натяжкой,тк зачастую бизнес сущности разнесены по нескольким таблицам.Кроме того,подобный вариант усложняет написание клиентской части,поскольку нет четкого интерфейса для работы с объектами и не скрыты детали работы с БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 19:51 |
|
||
|
|

start [/forum/topic.php?fid=33&msg=36257763&tid=1548430]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 418ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...