Re[2]: Проектирование: интерфейс vs абстрактный класс
От: boluba  
Дата: 02.07.06 02:52
Оценка:
Здравствуйте, Pharod, Вы писали:

P>Если работа идет с некой "недоменной" областью — то есть technology for technology — то как правило всегда использую только интерфейсы.


Я встречал в таком виде: "Если задумался над тем, класс это или интерфейс, то это интерфес". Задачи с "недоменной" областью в этом смысле, пожалуй, проще анализировать.

P>Если проектируется часть соотв. некой доменной области — простой подход такой:

P>Интерфейсы описывают в большей степени свойства объектов, в то время как классы — это is a отношение.
P>Абстрактный класс Cat это куда сильнее чем некий интерфейс Feedable. Интерфейсы позволяют описать некую общность поведения,
P>в то время как абстрактные классы это еще и общность состояний и свойств.

Ваши аргументы приняты. Попробую уточнить вопрос.

Классический пример — "простой графический редактор". Идем по классическому пути: редактор работает с фигурами. Треугольник, круг, квадрат. Логично предложить их в качестве кандидатов в классы. Абстрактный класс Фигура тоже выглядить уместным.

Теперь добавим в редактор точку. Точка — это фигура? Или правильнее выделить интерфейсы Drawable, Resizeable, etc?

Как поступить на этапе анализа задачи?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.