yigal_s: (0)
yigal_s ([personal profile] yigal_s) wrote 2004-06-02 02:51 pm (UTC)

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

> 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", который препятствует тому, чтобы числа и геометрические фигуры рассматривались как объекты?

Post a comment in response:

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