частичный ответ

Date: 2004-06-02 02:51 pm (UTC)
yigal_s: (0)
From: [personal profile] yigal_s
> You're right in saying that a class shouldn't expose its internals, even to subclasses.

Я этого не говорил. Соответственно, и дальнейшие объяснения про итераторы излишни. :-)

Речь была о другом - в С++ публичное наследование предполагает сразу две разные вещи: методы базового класса становятся публичными методами производного класса и, второе, указатель на производный класс свободно кастируется в указатель на базовый. Так вот, при использовании mix-техник, второе свойство видится практически абсолютно излишним. Реальный mix - это приватный базовый класс с, тем не менее, публичным интерфейсом (в С++ такое реализуемо, но не без малооправданных усилий). По сути, наследование тут, в mix-классах, играет чисто синтаксическую роль, позволяя изящным образом добавить какие-то фичи в имплементацию. Семантически же "базовый" и "производный" класс вовсе не связаны отношением "isA".

> Regarding entities and objects: no offense intended, but numbers and shapes are textbook examples and not really useful.

Не вижу связи между критерием употребимости, который рассматриваете Вы, и возможностью выстроить вменяемую иерархию для довольно простой системы объектов.

> You just shouldn't go OO with rectangles and squares,

Огласите, пожалуйста, весь список. (с)

> it's not the point of OO.

Да ну? А в чем тогда "the point of OO", который препятствует тому, чтобы числа и геометрические фигуры рассматривались как объекты?
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting