Проблема такая, начали изучать java (ну и ООП, по совместительству) и одно из первых заданий расписать классы своей объектной области, без реализации. ООП препод не объясняет, ударившись в синтаксис языка, а расписать классы и выделить сущности надо , и желательно сделать грамотно, т.к. на них в дальнейшем будет сделан вебпроект (типа курсач, со всеми технологиями джавы). Вот, поэтому обращаюсь к Вам. Помогите словами хотя бы, как вы видите объектную реализацию (какие классы необходимо создать, какой от какого унаследывать)? Область:
самый простой вариант - выпиши существительные из этого описания. это - претенденты на звание классов. дальше продумай кто отвечает за создание объектов классов. Например Администратор оформляет проект, значит он создает объекты этого класса. Это очень важный шаг. И готовых решений тут нету, ибо вариантов много. Но советую глянуть книгу Лармана "Применение UML 2.0 и шаблонов проектирования". Там как раз есть шаблоны, описывающие, как разделить ответственности создания и управления классами, что такое высокое зацепление, низкая связанность, как они влияют на проект. Если прочитаешь это(а это не так много страниц), то как минимум сделаешь достаточно грамотную архитектуру.
Хе-хе, так это одна из самых сложных задач. Этими задачами занимаются отдельные люди - архитекторы, постановщики задачи и т.п. Собственно это не задача рядового программиста, и в курсе ООП обычно эта тема не освещается. Касаемо собственно проблемы - почитай класика - Буча (вот тапример здесь http://www.helloworld.ru/texts/comp/other/oop/ch02.htm). Если более глубоко копать не нужно, этого хватит. А если копать более глубоко, то подход Буча многими критикуется, и вообще говоря, по Бучу реальные программы обычно не пишутся, но как для теории - сойдет.
почитай С. Макконнелла "Совершенный Код", там достаточно много про это написано. Чтобы выполнить твою задачу нужно выделить объекты, которые взаимодействуют в твоей задаче, понять, какие у этих объектов есть свойста, какие свойства должны быть "открыты" для других(создать интерфейс), понять их взаимодействия(каждый объект может содержать другие объекты и т.д.). После этого ты можешь создавать уже иерархию классов. не всегда из самых сложных, но из самых важных - точно.