Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   ООП help (https://forum.antichat.xyz/showthread.php?t=152851)

ToniKapuchon 01.11.2009 14:32

ООП help
 
Проблема такая, начали изучать java (ну и ООП, по совместительству) и одно из первых заданий расписать классы своей объектной области, без реализации. ООП препод не объясняет, ударившись в синтаксис языка, а расписать классы и выделить сущности надо :confused:, и желательно сделать грамотно, т.к. на них в дальнейшем будет сделан вебпроект (типа курсач, со всеми технологиями джавы). Вот, поэтому обращаюсь к Вам. Помогите словами хотя бы, как вы видите объектную реализацию (какие классы необходимо создать, какой от какого унаследывать)?

Область:
Цитата:

Система Конструкторское бюро. Заказчик представляет Техническое Задание (ТЗ), в котором перечислен перечень Работ с указанием квалификации и количества требуемых специалистов. Администратор рассматривает ТЗ и оформляет Проект, назначая на него незанятых Работников требуемой квалификации, после чего рассчитывается стоимость Проекта и Заказчику выставляется Счет из расчета заработной платы назначенных специалистов. Администратор должен иметь возможность просмотреть список неоплаченных Счетов.

Ra$cal 01.11.2009 21:28

самый простой вариант - выпиши существительные из этого описания. это - претенденты на звание классов. дальше продумай кто отвечает за создание объектов классов. Например Администратор оформляет проект, значит он создает объекты этого класса. Это очень важный шаг. И готовых решений тут нету, ибо вариантов много. Но советую глянуть книгу Лармана "Применение UML 2.0 и шаблонов проектирования". Там как раз есть шаблоны, описывающие, как разделить ответственности создания и управления классами, что такое высокое зацепление, низкая связанность, как они влияют на проект. Если прочитаешь это(а это не так много страниц), то как минимум сделаешь достаточно грамотную архитектуру.

Algol 02.11.2009 11:49

Цитата:

Сообщение от ToniKapuchon
Проблема такая...

Хе-хе, так это одна из самых сложных задач. Этими задачами занимаются отдельные люди - архитекторы, постановщики задачи и т.п. Собственно это не задача рядового программиста, и в курсе ООП обычно эта тема не освещается.
Касаемо собственно проблемы - почитай класика - Буча (вот тапример здесь http://www.helloworld.ru/texts/comp/other/oop/ch02.htm). Если более глубоко копать не нужно, этого хватит. А если копать более глубоко, то подход Буча многими критикуется, и вообще говоря, по Бучу реальные программы обычно не пишутся, но как для теории - сойдет.

cyanoвый 02.11.2009 12:18

почитай С. Макконнелла "Совершенный Код", там достаточно много про это написано.

Чтобы выполнить твою задачу нужно выделить объекты, которые взаимодействуют в твоей задаче, понять, какие у этих объектов есть свойста, какие свойства должны быть "открыты" для других(создать интерфейс), понять их взаимодействия(каждый объект может содержать другие объекты и т.д.). После этого ты можешь создавать уже иерархию классов.

Цитата:

Сообщение от Algol
Хе-хе, так это одна из самых сложных задач. Этими задачами занимаются отдельные люди - архитекторы, постановщики задачи и т.п. Собственно это не задача рядового программиста, и в курсе ООП обычно эта тема не освещается.

не всегда из самых сложных, но из самых важных - точно.


Время: 02:15