| 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 и ООП. | |
| От: | samius | ||
| Дата: | 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 админ | ||
| Дата: | 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 админ | ||
| Дата: | 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 и ООП. | |
| От: | gandjustas | ||
| Дата: | 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 rsdn | ||
| Дата: | 20.05.09 13:04 |
| Здравствуйте, IT, Вы писали: IT>Есть такие понятия как overengineering, overarchitecture и прочие over-. Вот ты overразобрался. Да нет, в самый раз. IB>>Есть сложившийся стереотип, что наследование, это неотъемлемая часть ООП, но на поверку это не совсем так. IT>Ну да. Вот и договорились.. IT> Только ты больше никому не рассказывай, что наследование — это разновидность полиморфизма и всё будешь хорошо. Я рассказываю, что это способ получить полиморфизм, и все, вообщем-то не плохо.. IT>Надо же, а мужики то и не знали. Да-да, и во всех этих ссылках мужики рассказывают про разницу между наследованием и прототипированием.. Мы уже победили, просто это еще не так заметно... |
| Re[44]: Уточняю насчёт GoF и ООП. | |
| От: | IT админ | ||
| Дата: | 20.05.09 13:04 |
| Здравствуйте, gandjustas, Вы писали: G>См выше. Разговор об ООП, не о наследовании вообще. Разговор о том, что наследование это (да/нет) разновидность полиморфизма. If nobody helps us, then we, too, will show no mercy. |
| Re[45]: Уточняю насчёт GoF и ООП. | |
| От: | gandjustas | ||
| Дата: | 20.05.09 13:11 |
| Здравствуйте, IT, Вы писали: IT>Здравствуйте, gandjustas, Вы писали: G>>См выше. Разговор об ООП, не о наследовании вообще. IT>Разговор о том, что наследование это (да/нет) разновидность полиморфизма. Это не разновидность. Это способ получить полиморфизм по неявному аргументу. |
| Re[43]: Уточняю насчёт GoF и ООП. | |
| От: | IB rsdn | ||
| Дата: | 20.05.09 13:12 |
| Здравствуйте, IT, Вы писали: IT>Ваня утверждает в точности обратное, а именно, что наследование без виртуальных методов не очень нужно. Ничего подобного Ваня не утверждает. Ваня утверждает, что есть несколько причин прибегнуть к наследованию, но все они все равно упираются в полиморфизм. И так же он утверждает, что полиморфизм не ограничивается перегрузкой виртуальных методов. IT>Ну и что? Вы опять зациклились на "наследование нужно только для полиморфизма". Это чушь. Причём полная. А аргументы-то будут? Мы уже победили, просто это еще не так заметно... |
| Re[44]: Уточняю насчёт GoF и ООП. | |
| От: | IT админ | ||
| Дата: | 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 админ | ||
| Дата: | 20.05.09 13:23 |
| Здравствуйте, gandjustas, Вы писали: G>Это не разновидность. Это способ получить полиморфизм по неявному аргументу. И именно и только для этого наследование было придумано? If nobody helps us, then we, too, will show no mercy. |
| Re[45]: Уточняю насчёт GoF и ООП. | |
| От: | IB rsdn | ||
| Дата: | 20.05.09 14:02 |
| Здравствуйте, IT, Вы писали: IT>Хочешь пример наследования, который не упирается в полиморфизм? Давай. IT>Ты так быстро просмотрел все эти 726,000 сслыки? Я талантливый.. Мы уже победили, просто это еще не так заметно... |
| Re[46]: Уточняю насчёт GoF и ООП. | |
| От: | IT админ | ||
| Дата: | 20.05.09 14:18 |
| Здравствуйте, IB, Вы писали: IT>>Хочешь пример наследования, который не упирается в полиморфизм? IB>Давай.
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 |