1 2 3 4 5 6 7 8 9 10 11 12
Re[33]: Уточняю насчёт GoF и ООП. в избранное  новое горячее всё    подписка   модер. 
От: AndrewVK модератор 
Дата: 20.05.09 07:40
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>Блин, не кодинг а квест какой-то


В случае винформсов квест как бы не похлеще, просто он уже пройден.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
Re[34]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: Sinix 
Дата: 20.05.09 07:57
Здравствуйте, AndrewVK, Вы писали:

AVK>В случае винформсов квест как бы не похлеще, просто он уже пройден.


Так и есть, каждый раз когда готов ругаться на WPF представляю как это пришлось бы делать в винформсах
Re[26]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: GlebZ 
Дата: 20.05.09 08:19
Здравствуйте, AndrewVK, Вы писали:

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


IT>>Только без этого рудимента почему-то не обходится ни одна приличная UI библиотека


AVK>Это и печалит

А меня сейчас печалит COM, в частности shell extension. Реализуйте данный интерфейс, вот в этих методах можете вернуть E_NOTIMPL, а вот в эти нужно реализовать. Вобщем, без документации — никак. И пользовать эти интерфейсы без учета вышеперечисленного нельзя. Сколько им пришлось проверок реализовать, один Гейтс и знает. Притом, я вполне понимаю почему им пришлось сделать так, а не эдак. Более мелкая грануляция интерфейсов приведет к большей сложности реализации. В случае наследования, можно явно показывать что нужно и обязательно реализовывать, что реализовывать по желанию.
Re[27]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: AndrewVK модератор 
Дата: 20.05.09 09:07
Здравствуйте, GlebZ, Вы писали:

AVK>>Это и печалит

GZ>А меня сейчас печалит COM, в частности shell extension.

Это другого плана печаль, не архитектурная а реализационная.

GZ> Реализуйте данный интерфейс, вот в этих методах можете вернуть E_NOTIMPL, а вот в эти нужно реализовать. Вобщем, без документации — никак. И пользовать эти интерфейсы без учета вышеперечисленного нельзя. Сколько им пришлось проверок реализовать, один Гейтс и знает. Притом, я вполне понимаю почему им пришлось сделать так, а не эдак. Более мелкая грануляция интерфейсов приведет к большей сложности реализации. В случае наследования, можно явно показывать что нужно и обязательно реализовывать, что реализовывать по желанию.


Я где то что то говорил про интерфейсы? Да и интерфейсы — далеко не серебряная пуля. Серебряная пуля это моск.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
Re[28]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: samiushttp://sams-tricks.blogspot.com
Дата: 20.05.09 09:09
Здравствуйте, AndrewVK, Вы писали:

AVK>Серебряная пуля это моск.

Не каждый
Re[28]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: GlebZ 
Дата: 20.05.09 10:08
Здравствуйте, AndrewVK, Вы писали:

AVK>>>Это и печалит

GZ>>А меня сейчас печалит COM, в частности shell extension.
AVK>Это другого плана печаль, не архитектурная а реализационная.
Это, главное, проблема.

AVK>Я где то что то говорил про интерфейсы? Да и интерфейсы — далеко не серебряная пуля. Серебряная пуля это моск.

Именно. Накосячить можно и там и там. Поэтому огульному охаиванию — мы говорим нет.
Что касается WinForms, то в рамках функциональности которая реализована там, на мой взгляд, наследование рулит. В качестве интерфейса библиотеки реализация которой выверено и спрятано, наследование рулит.
Re[29]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: AndrewVK модератор 
Дата: 20.05.09 11:09
Оценка: +1
Здравствуйте, GlebZ, Вы писали:

AVK>>Это другого плана печаль, не архитектурная а реализационная.

GZ>Это, главное, проблема.

А еще в Африке от голода умирают. И это тоже проблема.
Что касается того, что ты описывал, то корень зла тут совсем не в интерфейсах, а очень даже в СОМ и в том, что в СОМ интерфейсы обязательны и кроме них ничего нет.

AVK>>Я где то что то говорил про интерфейсы? Да и интерфейсы — далеко не серебряная пуля. Серебряная пуля это моск.

GZ>Именно. Накосячить можно и там и там. Поэтому огульному охаиванию — мы говорим нет.

А кто тут огульно охаивал? Тут тонко намекали, что смешивать наследование интерфейсов и реализации в большинстве случаев не очень разумно.

GZ>Что касается WinForms, то в рамках функциональности которая реализована там, на мой взгляд, наследование рулит.


Глядя на мегагромадный контракт Control, который дублируется во всех наследниках, на наличие и частое применение фильтров в конкретных дизайнерах, на кучу гамна в контракте, когда я пытаюсь сделать от какого нибудь грида специфичного, заточенного под конкретные данные наследника, на "превосходный" дизайн SplitterContainer, ProgressBar, XxxStripe и прочая, не могу с тобой согласиться никак.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
Re[30]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: GlebZ 
Дата: 20.05.09 12:02
Здравствуйте, AndrewVK, Вы писали:

AVK>А еще в Африке от голода умирают. И это тоже проблема.

Дитям в Африке я могу послать кусочек сыра. А вот изменить интерфейс IShellFolder — ну никак.

AVK>Что касается того, что ты описывал, то корень зла тут совсем не в интерфейсах, а очень даже в СОМ и в том, что в СОМ интерфейсы обязательны и кроме них ничего нет.

Нет чего? Наследования реализаций?

GZ>>Что касается WinForms, то в рамках функциональности которая реализована там, на мой взгляд, наследование рулит.

AVK>Глядя на мегагромадный контракт Control, который дублируется во всех наследниках,
В действительности — в этом есть существенный плюс. Тебе не нужно реализовывать Control. Достаточно бегать по текущему контракту, и переделывать то что нужно.

AVK>на наличие и частое применение фильтров в конкретных дизайнерах, на кучу гамна в контракте, когда я пытаюсь сделать от какого нибудь грида специфичного, заточенного под конкретные данные наследника,

Насчет грида — соглашусь. Не видел хорошей реализации грида ни разу. Но от Microsoft — редкостное гумно.
Re[42]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IT админbltoolkit.net
Дата: 20.05.09 12:17
Здравствуйте, gandjustas, Вы писали:

IT>>Как это опровергает сказанное?

G>Сказанное являтся очень частным случаем, полиморфизма.

Т.е. никак не опровергает.

IT>>Замени "класс" на любое слово, которое тебе нравится и да будет тебе счастье. Аминь.

G>В javascript нету ничего похожего на классы C++.

Да там и ООП в общем-то натянут на прототипы. Я уже говорил, что я эмулировал в своё время ООП на C. А ещё был ООП в TASM от Борланды.

G>Похоже он неправльно объяснил свою мысль. Ведь виртуальные методы без наследования не очень то нужны.


Ваня утверждает в точности обратное, а именно, что наследование без виртуальных методов не очень нужно.

G>>>Понимание ООП в статически и динамически типизруемых языках может кардинально отличаться.

IT>>Например?
G>Например любой динамический язык (теже puthon и ruby) могут обходится без наследования для получения того же эффекта от полиморфизма (в частности виртуальных методов), как в статически типизируемых языках. А в javascript этого неследования и не было никогда.

Ну и что? Вы опять зациклились на "наследование нужно только для полиморфизма". Это чушь. Причём полная.
If nobody helps us, then we, too, will show no mercy.
Re[42]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IT админbltoolkit.net
Дата: 20.05.09 12:37
Здравствуйте, IB, Вы писали:

IT>>Ну понятно, т.е. особых возражений по этому поводу нет.

IB>Ну, кроме того, что ты тут полиморфизм урезал..

Ну понятно.

IB>Я ничего не путал, я просто в свое время потрудился разобраться откуда ноги растут..


Есть такие понятия как overengineering, overarchitecture и прочие over-. Вот ты overразобрался.

IB>Есть сложившийся стереотип, что наследование, это неотъемлемая часть ООП, но на поверку это не совсем так.


Ну да. Только ты больше никому не рассказывай, что наследование — это разновидность полиморфизма и всё будешь хорошо. Договорились? Ну вот и славненько.

IT>>ООП в джава-скрипте сделан, мягко скажем, через прототипизацию.

IB>Но тем не менее, это полноценный ООП, без наследования.

Надо же, а мужики то и не знали.
If nobody helps us, then we, too, will show no mercy.
Re[43]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: gandjustashttp://gandjustas.blogspot.com/
Дата: 20.05.09 12:53
Здравствуйте, IT, Вы писали:

IT>>>Замени "класс" на любое слово, которое тебе нравится и да будет тебе счастье. Аминь.

G>>В javascript нету ничего похожего на классы C++.

IT>Да там и ООП в общем-то натянут на прототипы. Я уже говорил, что я эмулировал в своё время ООП на C. А ещё был ООП в TASM от Борланды.

Что значит ООП натянут на прототипы? Прототипы и есть ООП, они отлично соотвествуют определению Кея (он кстати и smalltalk создал, по этом smalltalk является самым ООП языком).

G>>Похоже он неправльно объяснил свою мысль. Ведь виртуальные методы без наследования не очень то нужны.

IT>Ваня утверждает в точности обратное, а именно, что наследование без виртуальных методов не очень нужно.
В плане ООП — да. Наследование преобрело такую популярность не только потому что дает полиморфизм, оно также дает повторное использование кода (а в случае С++ с можественным наследованием это часто используется).

G>>>>Понимание ООП в статически и динамически типизруемых языках может кардинально отличаться.

IT>>>Например?
G>>Например любой динамический язык (теже puthon и ruby) могут обходится без наследования для получения того же эффекта от полиморфизма (в частности виртуальных методов), как в статически типизируемых языках. А в javascript этого неследования и не было никогда.
IT>Ну и что? Вы опять зациклились на "наследование нужно только для полиморфизма". Это чушь. Причём полная.
См выше. Разговор об ООП, не о наследовании вообще.
Re[43]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IB rsdnhttp://rsdn.ru
Дата: 20.05.09 13:04
Здравствуйте, IT, Вы писали:

IT>Есть такие понятия как overengineering, overarchitecture и прочие over-. Вот ты overразобрался.

Да нет, в самый раз.

IB>>Есть сложившийся стереотип, что наследование, это неотъемлемая часть ООП, но на поверку это не совсем так.

IT>Ну да.
Вот и договорились..

IT> Только ты больше никому не рассказывай, что наследование — это разновидность полиморфизма и всё будешь хорошо.

Я рассказываю, что это способ получить полиморфизм, и все, вообщем-то не плохо..

IT>Надо же, а мужики то и не знали.

Да-да, и во всех этих ссылках мужики рассказывают про разницу между наследованием и прототипированием..
Мы уже победили, просто это еще не так заметно...
Re[44]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IT админbltoolkit.net
Дата: 20.05.09 13:04
Здравствуйте, gandjustas, Вы писали:

G>См выше. Разговор об ООП, не о наследовании вообще.


Разговор о том, что наследование это (да/нет) разновидность полиморфизма.
If nobody helps us, then we, too, will show no mercy.
Re[45]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: gandjustashttp://gandjustas.blogspot.com/
Дата: 20.05.09 13:11
Здравствуйте, IT, Вы писали:

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


G>>См выше. Разговор об ООП, не о наследовании вообще.


IT>Разговор о том, что наследование это (да/нет) разновидность полиморфизма.


Это не разновидность. Это способ получить полиморфизм по неявному аргументу.
Re[43]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IB rsdnhttp://rsdn.ru
Дата: 20.05.09 13:12
Здравствуйте, IT, Вы писали:

IT>Ваня утверждает в точности обратное, а именно, что наследование без виртуальных методов не очень нужно.

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

IT>Ну и что? Вы опять зациклились на "наследование нужно только для полиморфизма". Это чушь. Причём полная.

А аргументы-то будут?
Мы уже победили, просто это еще не так заметно...
Re[44]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IT админbltoolkit.net
Дата: 20.05.09 13:21
Здравствуйте, IB, Вы писали:

IT>> Только ты больше никому не рассказывай, что наследование — это разновидность полиморфизма и всё будешь хорошо.

IB>Я рассказываю, что это способ получить полиморфизм, и все, вообщем-то не плохо..

Твоё?

Ваня утверждает, что есть несколько причин прибегнуть к наследованию, но все они все равно упираются в полиморфизм.


Хочешь пример наследования, который не упирается в полиморфизм?

IT>>Надо же, а мужики то и не знали.

IB>Да-да, и во всех этих ссылках мужики рассказывают про разницу между наследованием и прототипированием..

Ты так быстро просмотрел все эти 726,000 сслыки?
If nobody helps us, then we, too, will show no mercy.
Re[46]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IT админbltoolkit.net
Дата: 20.05.09 13:23
Здравствуйте, gandjustas, Вы писали:

G>Это не разновидность. Это способ получить полиморфизм по неявному аргументу.


И именно и только для этого наследование было придумано?
If nobody helps us, then we, too, will show no mercy.
Re[45]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IB rsdnhttp://rsdn.ru
Дата: 20.05.09 14:02
Здравствуйте, IT, Вы писали:

IT>Хочешь пример наследования, который не упирается в полиморфизм?

Давай.

IT>Ты так быстро просмотрел все эти 726,000 сслыки?

Я талантливый..
Мы уже победили, просто это еще не так заметно...
Re[46]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: IT админbltoolkit.net
Дата: 20.05.09 14:18
Здравствуйте, IB, Вы писали:

IT>>Хочешь пример наследования, который не упирается в полиморфизм?

IB>Давай.

class A
{
    public int Field1;
}

class B : A
{
    public int Field2;
}


IT>>Ты так быстро просмотрел все эти 726,000 сслыки?

IB>Я талантливый..

Это я уже понял
If nobody helps us, then we, too, will show no mercy.
Re[31]: Уточняю насчёт GoF и ООП. в избранное  новое    модер. 
От: AndrewVK модератор 
Дата: 20.05.09 15:29
Здравствуйте, GlebZ, Вы писали:

GZ>Нет чего? Наследования реализаций?


Зациклился? Нет, к примеру, банальных статических функций.

AVK>>Глядя на мегагромадный контракт Control, который дублируется во всех наследниках,

GZ>В действительности — в этом есть существенный плюс.

Ну тогда дальше разговаривать не о чем.

GZ> Тебе не нужно реализовывать Control. Достаточно бегать по текущему контракту, и переделывать то что нужно.



Отличный путь к бардаку.

GZ>Насчет грида — соглашусь.


А с Control то же самое. На кой жоп мне, к примеру, в базовом контроле ссылка на контекстное меню, да еще и в двух видах, если мне оно в моем контроле без надобности? А TabStop и Focus сотоварищи, если контрол с клавиатурой не взаимодействует? По факту, если внимательно рассмотреть контракт контрола, процентов 80 там к самому контролу отношение имеют весьма опосредованное и грубейшим образом нарушают SRP.
Ну а потом по этой куче гамна написатели наследников "бегают по текущему контракту, и переделывают то что нужно", получая в итоге гамно в квадрате.

GZ> Не видел хорошей реализации грида ни разу. Но от Microsoft — редкостное гумно.


А я не про реализацию вообще то, а про дизайн, который может и прокатывал лет 15 назад, а вот в 2002, когда оно зарелизено было, это уже был моветон.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
1 2 3 4 5 6 7 8 9 10 11 12