Форум Сообщества Аналитиков

Общий раздел => Примеры => Тема начата: dimaxz от 12 Января 2011, 13:23:48

Название: Реализация классов на основе моделей(правильно или нет!)
Отправлено: dimaxz от 12 Января 2011, 13:23:48
Есть модели пользователь и новость, у пользователя три роли автор, инициатор и куратор, скажите:

1. при реализации классов будут два класса пользователь и новость, а у новости будут атрибуты автор,инициатор и куратор через которые будет происходить связь с пользователем.
2.Как тогда будет показываться связь этих двух классов с указанием ролей на концах ассоциации??
Название: Re: Реализация классов на основе моделей(правильно или нет!)
Отправлено: dimaxz от 12 Января 2011, 13:24:13
классы
Название: Re: Реализация классов на основе моделей(правильно или нет!)
Отправлено: bas от 12 Января 2011, 16:14:09
Лучше самому сгенерить код и посмотреть )

Вот тут Эдуард писал про то, как генериться композиция в разных средах:
http://galogenit.livejournal.com/1732.html
Название: Re: Реализация классов на основе моделей(правильно или нет!)
Отправлено: dimaxz от 12 Января 2011, 16:25:02
Я не про это IA сгенерит как надо class Автор extends Пользователь

но не правильно будет создавать классы автор, инициатор и куратор так. как это роли
Название: Re: Реализация классов на основе моделей(правильно или нет!)
Отправлено: bas от 12 Января 2011, 18:22:59
Нужно разделять физическое и логическое представление.
На логическом уровне у Вас все правильно нарисовано. На физическом будет просто 3 связи между Пользователем и Новостью, с соответствующими идентификаторами.
Название: Re: Реализация классов на основе моделей(правильно или нет!)
Отправлено: dimaxz от 12 Января 2011, 22:22:38
получается так?
Название: Re: Реализация классов на основе моделей(правильно или нет!)
Отправлено: Galogen от 13 Января 2011, 14:33:40
получается так?
Понимаете, как это передать на логическом уровне не так важно возможно, как потом спроектировать решение -вопрос интересный и открытый.

Предложенная вами схема плохая с точки зрения объектно-ориентированного проектирования. Подобная схема сложная, плохо подается изменениям и ее невозможно использовать повторно.

Здесь нужно исходить из принципов проектирования и искать решение снижающее количество зависимостей, реализующие принципы открытости-закрытости, Лисков и т.п.

Здесь повидимому следует поискать готовый шаблон для подобной ситуации, либо разработать собственное решение. Например выделить абстрактный класс роль.

Кроме того пока не ясны требвания предъявляемые к реализации. Что значит что у новости есть автор, инициатор и куратор? В чем различие этих ролей, какое влияние они оказывают на новость, что быдет если завтра потребуется ввести еще одну роль или убрать имеющуюся?
Название: Re: Реализация классов на основе моделей(правильно или нет!)
Отправлено: dimaxz от 13 Января 2011, 14:55:16
Пользователь-автор имеет возможность создать новость указав обязательно пользователя-инициатора данной новости, и при желании пользователя-куратора (имеющего возможность проверить эту новость на корректность).