powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП
8 сообщений из 8, страница 1 из 1
ООП
    #33037282
iri_iri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброй всем ночи!!!

У меня следующая проблема:

есть что-то отдаленно напоминающее ТЗ. И в принципе, все в этой задаче как бы и понятно:
взять данные из БД1, дать возможность их редактировать, переложить куда-то еще, оттуда инфу берет уже другой кусок системы...инфа передается в 3 тысячи мест в разных форматах...естественно нужно поддерживать целостность и т.д. вобщем большая и не особо интересная задачка...

опять же: вроде все понятно. Понарисовывала себе разные схемки.

но надо с чего-то начинать...

потому как только начинаю всем этим заниматься, то с чего собственно начать не знаю...

и тут умные люди рассказали, что есть такие вещи, как анализ и проектирование, и такой Гради Буч....

и так оно все понятно, когда примеры смотришь...

но когда дело доходит до того, что надо и для своей задачки сделать то же самое, что в примере.... вот тут появляются проблемы...

и вот вопрос:

как бы это проектирование применить на практике?
как бы начать думать объектно?
вопрос конечно совсем реторический, наверное, но может посоветуете что-то....
...
Рейтинг: 0 / 0
ООП
    #33037286
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iri_iri
как бы это проектирование применить на практике?


ну начать (без шуток и ёрничества!) советую всегда с функции main () - для СИ - и потом дело уже как-то само по себе прёт!

iri_iri
как бы начать думать объектно?


а вот учить думать не умею...
Скажем так, ... э-э-э... стоит попытаться представить себе объект как таковой. Вот он есть, этот объект, у него есть то-то и то-то, он умеет так и вот так... А ещё ему необходимо будет взаимодействовать с вот таким вот объектом... А потом садишься и пишешь ОБЪЕКТЫ, каждый из которых выполнет свои функции и не лезет в чужую жизнь...
Не знаю как объяснить... на мой взгляд всё до безобразия логично и жизненно (потому ООП и получило широкое распространение!). Если сможешь точно объяснить в каком месте не ясно, то может смогу как-нить поточнее объяснить
...
Рейтинг: 0 / 0
ООП
    #33040102
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iri_iriДоброй всем ночи!!!

У меня следующая проблема:
как бы это проектирование применить на практике?
как бы начать думать объектно?
вопрос конечно совсем реторический, наверное, но может посоветуете что-то....

могу посоветовать закачать книгу "addison wesley - data access patterns - database interactions in object-oriented applications" - там очень простые примеры и довольно жизненные. Есть хорошая книга Фаулера "Архитектура корпоративные приложений", но она посложнее и серьёзнее будет, так что пока ограничься первой.

Далее все програмёшки бухгалтерского ширпотреба (то что громко назывется корпоративными приложениями) обычно строятся однообразно:

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

Объекты как я сказал довольно легко придумать - каждая сущность реального мира отображаешь в класс. Операция положить/взять из базы - особо пока не заморачивайся, считай что у тебя есть способ сохранить любой объект/взять из базы. Этим будет заниматься какой-нить класс типа ObjectMapper - все алгоритмы твоего приложения будут запрашивать объекты у этого класса и также запрашивать сохранить объект.

Вобщем думай логически и всё получится, хотя когда сделаешь скорее всего поймёшь что всё криво и надо бы подругому - но опыт набрать можно тока так ;)

PS Ещё полистай книгу GoF "Приёмы объектно-ориентированного проектирования. Паттерны проектирования" - хорошо учит использовать объекты с умом :) Гради Буч-а читать не стоит - занудно и длинно объясняет очевидные весчи. По-моему книга несколько устарела.
...
Рейтинг: 0 / 0
ООП
    #33040117
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XED iri_iri
как бы это проектирование применить на практике?


ну начать (без шуток и ёрничества!) советую всегда с функции main () - для СИ - и потом дело уже как-то само по себе прёт!


эээ... типа "Вали все в кучу, потом разберемся".
...
Рейтинг: 0 / 0
ООП
    #33041555
iri_iri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИнтеграторЭтим будет заниматься какой-нить класс типа ObjectMapper - все алгоритмы твоего приложения будут запрашивать объекты у этого класса и также запрашивать сохранить объект.


а можно в этом месте поподробнее..
...
Рейтинг: 0 / 0
ООП
    #33042134
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iri_iri ИнтеграторЭтим будет заниматься какой-нить класс типа ObjectMapper - все алгоритмы твоего приложения будут запрашивать объекты у этого класса и также запрашивать сохранить объект.


а можно в этом месте поподробнее..

Как раз на этом месте подробнее не надо :) Вопрос сохранения объектов в базу должен тебя волновать меньше всего на этапе проектирования !

Вообще открываешь книгу которую я процитировал выше и видишь перед собой ответы на многие твои вопросы : найти нужный тебе раздел легко - книга по сути является справочником по различным вопросам.

Садишься за бумагу и карандаш и русешь в понятном только для тебя виде схемки твоей программы: какие сущности что делаю и за что отвечают, потом все свои сущности делаешь объектами и получаешь объектную модель ;)

Отображение данных в базу в 2-х словах :

есть объект

class Device {
public:
int nID;
string strName;
string strType;
....
};


есть твой класс, отвечающий за отображение

class ObjectMapper {
public:
void saveDevice(Device& device);
void loadDevice(int nID, Device& device);
.....
};

делаешь
Device device;
....
theObjectMapper.saveObject(device);

Это в самом примитивном случае - на практике там много тонкостей с блокировками и т.д. и т.п.

Повторюсь - на это не заморачивайся пока - считай что такой класс у тебя есть. В Жабе например вообще такая отображалка есть стандартная и имеет звучное название JDO.
...
Рейтинг: 0 / 0
ООП
    #33043276
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интегратор В Жабе например вообще такая отображалка есть стандартная и имеет звучное название JDO.

В java есть более звучная штука: hibernate(.org). С её использованием, останется думать только о реализации бизнес-процессов.

Писать самому ObjectMapping - это откровенный маразм, если приложение действительно не является очень простым. Хотя всё зависит от того, какой смысл вложить в это понятие...
В книжке "Hibernate in action" - отлично написано о проблемах возникающих при попытках самостоятельного написания полноценных ORM систем.

Краем уха слышал, что вроде бы была попытка написать клона hibernate не то для С++, ни то для .NET.
...
Рейтинг: 0 / 0
ООП
    #33043425
Интегратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs Интегратор В Жабе например вообще такая отображалка есть стандартная и имеет звучное название JDO.

В java есть более звучная штука: hibernate(.org). С её использованием, останется думать только о реализации бизнес-процессов.


Вполне возможно - я не спец по жабе, так знаком немного ;)


Писать самому ObjectMapping - это откровенный маразм, если приложение действительно не является очень простым. Хотя всё зависит от того, какой смысл вложить в это понятие...
В книжке "Hibernate in action" - отлично написано о проблемах возникающих при попытках самостоятельного написания полноценных ORM систем.

Краем уха слышал, что вроде бы была попытка написать клона hibernate не то для С++, ни то для .NET.

А вот тут я поспорю. Во первых прежде чем пользоваться коммерческими продуктаминеплохо бы разобраться в принципах функционирования и изобрести велосипед. Браться за большие проекты сразу не имея опыта - тупиковое решение, так что подразумеваю что проект не большой. Во вторых верить в чудесное средсьво которое спасёт всех и вся в виде идеального JbjectMapper-a по меньшей мере наивно. Если начнёшь писать свой маппер то сразу поймёшь что такого решения нет и быть не может - рееляционная структура и объектная суть принципиально разные вещи и если думаешь об эффективности то сразу возникают серьёзные проблемы. Простой пример - в реляционном хранилище лучший вариант - использование запросов, которые могут быть эффективно оптимизированны РСУБД, а в объектном мире мы имеем перебор объектов - движение по иерархии. Так что чудес не бывает... За всё приходится платить в том числе и за универсальность.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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