Re: "Включение" vs "Наследование" интерфейсов
От: Павел Леонов Россия icq: 138726397
Дата: 01.10.04 09:35
Оценка:
Здравствуйте, S.Yu.Gubanov, Вы писали:

SYG>"Включение" vs "Наследование" интерфейсов


Используй статические методы, это позволит разгрузить типы. Допустим есть Тип XXX, к нему по крайней необходимости был добавлен метод ToInt(), ToArray(), Save().... и прочее. Сути, подразумеваемой под этим типом не изменилось, разве что добавился сервисный метод, однако формально это стал другой тип и пошло, поехало...

PS. Если это использовать, то выясниться, что не так уж много типов вообще нужно. ООП после процедурных языков — вещь полезная, только имхо по инерции произошел перекос.
Re[22]: "Включение" vs "Наследование" интерфейсов
От: Kluev  
Дата: 01.10.04 09:40
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Я правильно понял, что ты описываешь дизайн-тайм маппинг? То есть всего лишь примитивный тул, легко реализуемый современными средствами (были бы в платформе механизмы интроспекции)?

ИМХО и интроспекция не нужна. Что-то типа IDL будет в самый раз.

S>Тогда можно просто сесть его и написать

S>Правда, непонятно, к чему ты упоминал "прямую поддержку языком". Пока что я не вижу ничего, что можно было бы так поддержать.

Например оператор wrapper_cast т.е. делаешь переходник для класса, а язык это дело отслеживает и возвращает нужный враппер (типа dynamic_cast).
Re[23]: "Включение" vs "Наследование" интерфейсов
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.10.04 10:16
Оценка:
Здравствуйте, Kluev, Вы писали:
K>Например оператор wrapper_cast т.е. делаешь переходник для класса, а язык это дело отслеживает и возвращает нужный враппер (типа dynamic_cast).
Ну, в плюсах, например, этого не надо. Т.к. мы и так иожем сделать правильный каст, если сгенеренный класс задекларирует соответствующий неявный конструктор.
Интересно, что борланд пытался сделать что-то подобное в D8 при помощи хелпер классов.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[24]: "Включение" vs "Наследование" интерфейсов
От: Kluev  
Дата: 01.10.04 10:36
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Kluev, Вы писали:

K>>Например оператор wrapper_cast т.е. делаешь переходник для класса, а язык это дело отслеживает и возвращает нужный враппер (типа dynamic_cast).
S>Ну, в плюсах, например, этого не надо. Т.к. мы и так иожем сделать правильный каст, если сгенеренный класс задекларирует соответствующий неявный конструктор.

В компайл тайме да. А рантайме уже нет.
т.е. вот такая фича:
void foo(INode n)
{
   ICoolNode cn = wrapper_cast<ICoolNode>(n);
}

Хотя наверное это и не очень нужно. Можно самому ручками прикуртить, только тады прийдется как-то регистрировать врапперы. Сам класс-то о них ничего не знает. Хотя я здесь не вижу никаких особых сложностей. Более того весь вспомогательный код может как раз сгенерить WDL-translator (wrapper description language . Кстатит он мне видится двухрежимным. В первом режиме принимает описание враппера и генерит интерфейсный хедер. Во втором интерфейс+конкретный класс — генерит оболочку для конкретно взятого класса.

S>Интересно, что борланд пытался сделать что-то подобное в D8 при помощи хелпер классов.

Может быть. Идея то здравая. Для плюсов еще хороша тем что можно обеспечить кросскомпилерную совместимость. Т.к. vtable не используюьтся и исключения кидаются в клиетском коде.
Re[19]: "Включение" vs "Наследование" интерфейсов
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 01.10.04 11:45
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Ну братан, ну ты даешь!


Да, я понял в чем тут слабое место...
Re[2]: "Включение" vs "Наследование" интерфейсов
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 01.10.04 11:47
Оценка:
Здравствуйте, borisman2, Вы писали:

B>Можно, конечно, рассматривать большие интерфесы как набор более мелких, но работает это только в самом простейшем случае. Концептуально интерфейс является неделимой сущностью, не стоит, пожалуй рубить его на куски. Иначе лучше уж вообще отказаться от понятия интерфейса (как во многих динамически типизированных языках).


Согласен с Вами. Думаю, на этом можно считать вопрос исчерпанным.
Re[7]: "Включение" vs "Наследование" интерфейсов
От: Larm Украина  
Дата: 01.10.04 13:48
Оценка:
Здравствуйте, S.Yu.Gubanov, Вы писали:

SYG>"3" — это число, то есть абстракция. "бензобак" — эта такая фиговина куда бензин наливают. Спрашивается, как понимать выражение "3=бензобак"?


Не хотелось бы переходить на личности, но математику в университете изучали? Или еще в школу ходим? Вопрос задан идиотский.
The God who walks is among us...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.