Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как правильно спроектировать классы? / 14 сообщений из 14, страница 1 из 1
16.10.2009, 13:41
    #36255656
MLans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
Допустим мы пишем программу для работы с БД, например это система учета клиентов, стоит ли дублировать классы сущностей, то есть классы, которые отражают предметную область? Я много раз видел нечто подобное:

class MainClass
{

ArrayList Clients
void GetConnection(){}
void AddClient(Client x){}

}

class Client
{
string Name
string Manager
.....
}


то есть получается у нас предметная область в базе раскладывается на таблицы, а в приложении на соответствующие классы. Такая архитектура подходит, если база небольшая и в коллекцию или датасет можно полностью запихнуть содержимое всех таблиц.
Но что делать, если база огромная - гигабайты, не будем же мы всю ее копировать в оперативную память в соответствующие классы, как в таком случае грамотно построить классы приложения?
...
Рейтинг: 0 / 0
16.10.2009, 17:21
    #36256443
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
О чем Вы? Например в многих популярных ORM есть такое понятие как "отложенная загрузка" (lazy loading). Пихать все в ОП это архитектурный бред, кстати так же как и GetConnection() который у Вас всплыл :)
...
Рейтинг: 0 / 0
16.10.2009, 19:18
    #36256664
aston
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
Неправильное понимание подобной архитектуры.
Архитектура предполагает, что в коллекцию ложатся не сами объекты целиком, а ссылки (REFS) на них.
...
Рейтинг: 0 / 0
17.10.2009, 12:22
    #36257065
MLans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
Kachalov, а где об этом можно прочитать, можете что-то посоветовать - статью или книгу


aston,
"Неправильное понимание подобной архитектуры.
Архитектура предполагает, что в коллекцию ложатся не сами объекты целиком, а ссылки (REFS) на них."
К Вам та же просьба )
...
Рейтинг: 0 / 0
18.10.2009, 12:53
    #36257763
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLansа где об этом можно прочитать, можете что-то посоветовать - статью или книгу
- в документации по ORM , который Вы планируете использовать (к сожалению, из первого поста не совсем ясно о какой ОС, языке, БД и т. д. идет речь). Например можно почитать документацию по Hibernate . Что касается http://en.wikipedia.org/wiki/Lazy_loading] lazy loading , то Гугл Вам в помощь :)
...
Рейтинг: 0 / 0
18.10.2009, 18:49
    #36258121
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLans,
если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны.
Я имею ввиду классы бизнес-сущностей.
РСУБД - DAL(ADO\...) - DBAware(Grid\...)
...
Рейтинг: 0 / 0
26.10.2009, 15:20
    #36272668
MLans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
Petro123MLans,
если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны.
Я имею ввиду классы бизнес-сущностей.
РСУБД - DAL(ADO\...) - DBAware(Grid\...)

То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например?
...
Рейтинг: 0 / 0
26.10.2009, 15:24
    #36272680
Невезучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLansPetro123MLans,
если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны.
Я имею ввиду классы бизнес-сущностей.
РСУБД - DAL(ADO\...) - DBAware(Grid\...)

То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например?

Абсолютно правильно.
...
Рейтинг: 0 / 0
26.10.2009, 16:14
    #36272855
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLans,
бывают, например ГИС приложения. Там гридов маловато, а вот классов на клиенте полно.
и т.д.
...
Рейтинг: 0 / 0
19.11.2009, 14:11
    #36319805
MLans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
А как лучше тот же конекшн сделать?
один на все приложение или для каждого грида - свой конекшн, датасет, дата адаптер и т.д.
...
Рейтинг: 0 / 0
19.11.2009, 15:09
    #36319962
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLans,
как хош
- была инфа, что MS рекомендует на каждый.... (поработал с окном - всё закрыл)
- но Connect происходит долго, поэтому я на один МОДУЛЬ делаю один TADOConnection (в каждое окно передаю ссылку на него)
...
Рейтинг: 0 / 0
19.11.2009, 15:54
    #36320099
trdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLansPetro123MLans,
если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны.
Я имею ввиду классы бизнес-сущностей.
РСУБД - DAL(ADO\...) - DBAware(Grid\...)

То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например?
Нормальная, если выбираешь выполнение логики на сервере (+/-):
+ возможностей меньше
- быстродействие выше
Есть вариант выполнять логику на клиенте, тут все наоборот.
...
Рейтинг: 0 / 0
19.11.2009, 15:56
    #36320108
trdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLansА как лучше тот же конекшн сделать?
один на все приложение или для каждого грида - свой конекшн, датасет, дата адаптер и т.д.
Каждый коннект хавает ресурсы.
Для слоника есть даже диспетчер коннекшинз. Так что думай.
...
Рейтинг: 0 / 0
19.11.2009, 19:51
    #36320812
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно спроектировать классы?
MLansPetro123MLans,
если писать клиент-сервер без ОРМ, используя DAL, то классы на клиенте вообще не нужны.
Я имею ввиду классы бизнес-сущностей.
РСУБД - DAL(ADO\...) - DBAware(Grid\...)

То есть это нормальная ситуация, когда нет классов бизнес сущностей, а просто организованный набор гридов и формочек, а вся логика прописана в хранимых процедурах например?

Нормальной такую ситуацию можно назвать с очень большой натяжкой,тк зачастую бизнес сущности разнесены по нескольким таблицам.Кроме того,подобный вариант усложняет написание клиентской части,поскольку нет четкого интерфейса для работы с объектами и не скрыты детали работы с БД.
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Как правильно спроектировать классы? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]