> Implementation inheritance has its uses. For me, it's mostly about the "template method" pattern - superclass methods using pure-virtual functionality.
О таком варианте я тоже писал вот здесь http://www.livejournal.com/users/yigal_s/217768.html?thread=349352#t349352 (я, правда, перепутал название "template method" pattern with "strategy" pattern, но суть их практически одна и та же). Но по сути такое использование наследования классов количественно ничтожно в сравнении с использованием наследования для указанных мной целей в обычной практике.
> Not every IsA relationship should be implemented as subclassing, that's for sure.
Почему? Можете привести содержательный пример?
Против интерфейсов Java я ничего не имею, я, типа, "возражаю" именно против наследования данных и имплементаций. С Ruby незнаком. Но, предполагая, о чем вы говорите, замечу, что действительно, подключение каких-то имплементаций и деклараций через наследование видится приемлемым. Другое дело, что такое подключение mixins - это по сути подключение приватных базовых классов. Даже если имплементация и используется клиентом класса, преобразование класса к базовому "mixin" бессмысленно, полагаю.
> Also, some problem space entities shouldn't be objects at all - OO design certainly tries to be everything, but it isn't, and sometimes we actually have to learn new things.
Можете привести содержательный пример? Anyway, то, о чем я говорил, то есть, числа и фигуры - вполне себе могут претендовать на статус легитимных объектов, мне так кажется.
О! Спасибо за ответ.
Date: 2004-06-02 11:09 am (UTC)О таком варианте я тоже писал вот здесь http://www.livejournal.com/users/yigal_s/217768.html?thread=349352#t349352
(я, правда, перепутал название "template method" pattern with "strategy" pattern, но суть их практически одна и та же). Но по сути такое использование наследования классов количественно ничтожно в сравнении с использованием наследования для указанных мной целей в обычной практике.
> Not every IsA relationship should be implemented as subclassing, that's for sure.
Почему? Можете привести содержательный пример?
Против интерфейсов Java я ничего не имею, я, типа, "возражаю" именно против наследования данных и имплементаций. С Ruby незнаком. Но, предполагая, о чем вы говорите, замечу, что действительно, подключение каких-то имплементаций и деклараций через наследование видится приемлемым. Другое дело, что такое подключение mixins - это по сути подключение приватных базовых классов. Даже если имплементация и используется клиентом класса, преобразование класса к базовому "mixin" бессмысленно, полагаю.
> Also, some problem space entities shouldn't be objects at all - OO design certainly tries to be everything, but it isn't, and sometimes we actually have to learn new things.
Можете привести содержательный пример? Anyway, то, о чем я говорил, то есть, числа и фигуры - вполне себе могут претендовать на статус легитимных объектов, мне так кажется.