|
VB6 и ООП
|
|||
---|---|---|---|
#18+
Модератор: выделено из 21487470 ATM-TURBO 2vb_subATM-TURBO 2, есть ли такая острая нужда в многопоточности для VB6? Это сродни вопросу - есть ли такая острая нужда в многопоточности для C++? Каков будет ответ?Нужда в нормальном ООП острее. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 12:25 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
AntonariyATM-TURBO 2пропущено... Это сродни вопросу - есть ли такая острая нужда в многопоточности для C++? Каков будет ответ?Нужда в нормальном ООП острее. Написать современную программу без ООП можно, без многопоточности - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 12:57 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
EoltНаписать современную программу без ООП можносовременная - это у которой дата изменения исполняемого файла нынешняя? каковы критерии "современности"? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 13:10 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
AntonariyATM-TURBO 2пропущено... Это сродни вопросу - есть ли такая острая нужда в многопоточности для C++? Каков будет ответ?Нужда в нормальном ООП острее. Начнем с того чем VB-ООП не подходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 14:11 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
ATM-TURBO 2Antonariyпропущено... Нужда в нормальном ООП острее. Начнем с того чем VB-ООП не подходит?Нет наследования и полиморфизма. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 14:34 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
AntonariyATM-TURBO 2пропущено... Это сродни вопросу - есть ли такая острая нужда в многопоточности для C++? Каков будет ответ?Нужда в нормальном ООП острее. это оксюморон какой-то. Как то, что названо ооп - вообще может быть нормальным? И нормальным - это simula-67, ml-67 или smalltalk-80? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 14:57 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
AntonariyEoltНаписать современную программу без ООП можносовременная - это у которой дата изменения исполняемого файла нынешняя? каковы критерии "современности"? Современная = неоднопоточная ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 15:23 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
EoltAntonariyпропущено... современная - это у которой дата изменения исполняемого файла нынешняя? каковы критерии "современности"? Современная = неоднопоточнаяследовательно, двадцать лет назад многопоточные программы были фантастическими? а может сказочными или чудесными? продолжай, я заинтригован. многопоточностью не отделаешься, в тебе сидит еще куча перлов, я чувствую это. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 20:15 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
boobyAntonariyпропущено... Нужда в нормальном ООП острее. это оксюморон какой-то. Как то, что названо ооп - вообще может быть нормальным? И нормальным - это simula-67, ml-67 или smalltalk-80?ваше личное понимание ООП никого не волнует. ООП здорового человека стоит на четырех китах (абстракция, инкапсуляция, наследование, полиморфизм), из которых в VB6 присутствует только два, и от неуместного перевода стрелок на всякие стимулы еще два не появится. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 20:21 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
AntonariyATM-TURBO 2пропущено... Начнем с того чем VB-ООП не подходит?Нет наследования и полиморфизма. Чем наследование интерфейсов и полиморфизм на основе интерфейсов не устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 20:36 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
ATM-TURBO 2Antonariyпропущено... Нет наследования и полиморфизма. Чем наследование интерфейсов и полиморфизм на основе интерфейсов не устраивает?тем, что это фуфло. "наследование интерфейсов" - это что вообще за понятие такое? в .NET интерфейсы могут наследовать друг друга, а в VB6 они этого не умеют, смысла тут в этом сочетании слов никакого нет. интерфейс в VB6 может только реализоваться классом. и вот реализация-то никак не наследуется. "полиморфизм на основе интерфейсов" из той же фуфельной оперы. где объявление обязательного к переопределению члена? где сокрытие? где хотя бы перегрузки? всё, до свиданья, полиморфизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 21:20 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
Antonariy где объявление обязательного к переопределению члена?впрочем, тут-то все в порядке, члены интерфейса обязательны к реализации, проблемы как раз с необязательными переобъявлениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 21:25 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
Antonariyтем, что это фуфло. "наследование интерфейсов" - это что вообще за понятие такое? в .NET интерфейсы могут наследовать друг друга, а в VB6 они этого не умеют, смысла тут в этом сочетании слов никакого нет. Фуфло - это твое понимание принципа интерфейсов. Ты знаком вообще с понятием интерфейсов? В COM интерфейсы также могут наследовать друг-друга, как минимум любой интерфейс должен наследоваться от IUnknown, а в VB6 любой интерфейс наследует еще как минимум IDispatch. VB6 может имплементировать интерфейсы производные от IUnknown и IDispatch, но если немного знать суть работы то можно реализовать любой интерфейс, как к примеру тут (IDWriteTextRenderer наследуется от IDWritePixelSnapping и реализуется VB6-классом). Antonariy интерфейс в VB6 может только реализоваться классом. и вот реализация-то никак не наследуется. Об обратном никто не говорил. Наследование реализации в COM делается через включение. Обращения к базовому классу делегируются этому объект. Antonariy"полиморфизм на основе интерфейсов" из той же фуфельной оперы. где объявление обязательного к переопределению члена? где сокрытие? где хотя бы перегрузки? всё, до свиданья, полиморфизм. Что? Что ты имеешь в виду? Интерфейс - это контракт взаимодействия объектов. Сокрытие чего? У меня есть интерфейс и классы реализуют его, вследствии чего я могу обращаться к разным объектам посредством ссылки на один общий интерфейс. Думай о VB6 как о COM-ориентированном языке, потом почитай вот это https://msdn.microsoft.com/en-us/library/windows/desktop/ff637359(v=vs.85).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 21:55 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
Все примеры наследования, агрегирования и т.п. есть в книге Advanced Visual Basic 6 Power Techniques for Everyday Programs by Matthew Curland. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 22:51 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
ATM-TURBO 2Antonariyтем, что это фуфло. "наследование интерфейсов" - это что вообще за понятие такое? в .NET интерфейсы могут наследовать друг друга, а в VB6 они этого не умеют, смысла тут в этом сочетании слов никакого нет. Фуфло - это твое понимание принципа интерфейсов. Ты знаком вообще с понятием интерфейсов? В COM интерфейсы также могут наследовать друг-друга, как минимум любой интерфейс должен наследоваться от IUnknown, а в VB6 любой интерфейс наследует еще как минимум IDispatch. VB6 может имплементировать интерфейсы производные от IUnknown и IDispatch, но если немного знать суть работы то можно реализовать любой интерфейс, как к примеру тут (IDWriteTextRenderer наследуется от IDWritePixelSnapping и реализуется VB6-классом).Помимо того, что я знаком с понятием интерфейсов, я еще и в состоянии отделять мух от котлет, которых ты понамешал в кучу. Какое отношение твое шаманство НА ЯЗЫКЕ IDL имеет к возможностям ЯЗЫКА VB6 ? Объяви на VB6 интерфейс I1, унаследуй от него на VB6 интерфейс I2, и вот с этого момента начнется речь о наследовании интерфейсов на языке VB6 . в гробу я видал эти идлки писать, написался уже. ATM-TURBO 2Antonariy интерфейс в VB6 может только реализоваться классом. и вот реализация-то никак не наследуется. Об обратном никто не говорил. Само собой, на COM съехать гораздо удобней, он-то к возможностям языка VB6 вообще отношения не имеет, ему пофиг на каком языке к нему обращаются. ATM-TURBO 2Antonariy"полиморфизм на основе интерфейсов" из той же фуфельной оперы. где объявление обязательного к переопределению члена? где сокрытие? где хотя бы перегрузки? всё, до свиданья, полиморфизм. Что? Что ты имеешь в виду? Интерфейс - это контракт взаимодействия объектов. Сокрытие чего? У меня есть интерфейс и классы реализуют его, вследствии чего я могу обращаться к разным объектам посредством ссылки на один общий интерфейс.Во, ты даже не понимаешь, о чем речь. Поищи по ключевым словам Overridable, Shadows, Overloads, которых нет в VB6. ATM-TURBO 2Думай о VB6 как о COM-ориентированном языкеЕсли бы ты был автором пассажа о "современном ПО", то это звучало бы еще смешнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 22:58 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
ATM-TURBO 2Все примеры наследования, агрегирования и т.п. есть в книге Advanced Visual Basic 6 Power Techniques for Everyday Programs by Matthew Curland. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 23:00 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
авторПомимо того, что я знаком с понятием интерфейсов, я еще и в состоянии отделять мух от котлет, которых ты понамешал в кучу. Какое отношение твое шаманство НА ЯЗЫКЕ IDL имеет к возможностям ЯЗЫКА VB6? Нет, ты написал: автор"наследование интерфейсов" - это что вообще за понятие такое? А я с радостью написал что ты не прав, и привел примеры наследования интерфейсов. Неважно на чем это написано, когда говорят что нет такой возможности (значит ее нет совсем), а она есть - это уже ересь. Дословно: авторНет наследования и полиморфизма. Есть и то и то. Есть наследование интерфейсов и полиморфизм. Пример привел. авторСамо собой, на COM съехать гораздо удобней, он-то к возможностям языка VB6 вообще отношения не имеет, ему пофиг на каком языке к нему обращаются. А то что VB6 - это COM ориентированный ЯП ты учитываешь? То что всегда любой класс в VB6 - это автоматически COM класс? А как в COM делается повторное использование кода? И я описал это. Если это работает не так как тебе хочется - это не значит что это неправильно. авторВо, ты даже не понимаешь, о чем речь. Поищи по ключевым словам Overridable, Shadows, Overloads, которых нет в VB6. Не понимаю как это относится к полиморфизму на основе интерфейсов. Я прекрасно знаю что нет наследования реализации, для чего ты мне пишешь про это в очередной раз - мне не понятно. авторто это звучало бы еще смешнее. Не знаю в каком нужно быть состоянии чтобы смеяться над этим. авторкостыли Да ладно, то-то в IClassFactory::CreateInstance pUnkOuter как костыль придумали. Агрегация в Vb6 используется с юзерконтролами когда ты нажимаешь точечку и видишь помимо методов юзерконтрола свойства типа Letf, Top, Name etc. Ничего себе костыль. Хочу заметить юзерконтролы - это те же самые классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2018, 23:58 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
Antonariyboobyпропущено... это оксюморон какой-то. Как то, что названо ооп - вообще может быть нормальным? И нормальным - это simula-67, ml-67 или smalltalk-80?ваше личное понимание ООП никого не волнует. Вы сами принципиально не читаете то, на что ссылаетесь? сбрендившая википедияТо есть фактически речь идет о прогрессирующей организации информации согласно первичным семантическим критериям: «важное/неважное», «ключевое/подробности», «родительское/дочернее», «единое/множественное». Прогрессирование, в частности, на последнем этапе дает возможность перехода на следующий уровень детализации, что замыкает общий процесс. Обычный человеческий язык в целом отражает идеологию ООП, начиная с инкапсуляции представления о предмете в виде его имени и заканчивая полиморфизмом использования слова в переносном смысле, что в итоге развивает[3] выражение представления через имя предмета до полноценного понятия-класса. Это не иначе, как после второго укола писалось. Вместо письма в "дорогую передачу". Я даже не буду спрашивать - с какой фразы здесь можно начинать программировать. Antonariy ООП здорового человека стоит на четырех китах (абстракция, инкапсуляция, наследование, полиморфизм), Вы осторожнее и аккуратнее с количеством китов. Всё программирование долгое время всего на трёх китах умудрялось как-то выстаивать: - последовательности выполняемых действий, операторе выбора и возможности формировать цикл. А вашему ооп нужны стазу четыре? И на каком из них циклы поставлены? Вопрос о четвертом ките программирования в виде языковых примитивов обеспечения многозадачности, и правда, давно широко дебатируется в узких кругах. Но самостоятельных ни плавников ни усов он пока не отрастил. Antonariy из которых в VB6 присутствует только два, Скажешь каких? Давай догадаюсь. В полиморфизме и наследовании ты отказал, значит, остались абстракция и инкапсуляция. И ты правда уверен в том, что то, что подразумевается под словом "абстракция" есть у VB6? Как ты говоришь, "абстракция здорового человека" подразумевает всего лишь статический полиморфизм. Ни больше ни меньше. И у кого он есть на самом деле из тех, кого ты к "настоящим ооп" относишь? (Выбор таки есть, но среди, например, прямых наследников симулы, без примесей ML, - четырех пальцев точно не потребуется). Antonariy и от неуместного перевода стрелок на всякие стимулы еще два не появится. Не помню, у кого из великих - Дейкстры или Хоара, было где-то замечание по поводу программирования "сверху вниз". Смысл его заключается в том, что это хороший подход к программированию, но ему нельзя учить новичков. Так как новички не знают, где верх. Это вот к чему - тебе были предложены три модельных источника всего того, вообще всего , что впоследствии стало называться или относиться к "ооп". Указание на любой из них дает ясную картину того, что именно ты считаешь "правильным ооп". Просто для уточнения твоего модельного представления путем указания на конкретный пример языка. Твой ответ свидетельствует лишь о том, что ты - ничего не считаешь. Предпочитаешь ссылаться на лишенные содержания тексты. А для меня это является признаком того, что несомненно, ты не используешь того, за что так бурно выступаешь. По крайней мере осмысленно и содержательно - почти наверно - не используешь. Иначе не было бы причин для эмоций. И да, мне лениво бегать по твоим текстам в других постах этого топика. Просто поверь на круг - о полиморфизме даже динамическом, у тебя представления весьма превратные, если вообще есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 02:24 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
ATM-TURBO 2 Неважно на чем это написано,Акуеть. Я предъявляю претензии к языку VB6, его синтаксису, а меня пытаются разубедить с помощью другого языка. В адеквате вообще? А давай вообще писать библиотеки на с++, в котором ООП-фарша вдвое больше, чем в VB6, подрубать к VB6 и мощно наслаждаться его "возможностями"? ATM-TURBO 2когда говорят что нет такой возможности (значит ее нет совсем)А ее нет, совсем нет. Нет даже прямого объявления интерфейса, компилятором за интерфейс считается объявление класса. ATM-TURBO 2а она есть А есть - костыли на IDL ATM-TURBO 2Есть наследование интерфейсов и полиморфизм. Нет ни того ни другого. Чтобы наследовать интерфейсы, нужно изучить совершенно другой язык, язык описания интерфейсов - IDL. А а вместо прозрачного синтаксического полиморфизма - поипень с интерфейсами. Костыли есть, а синтаксических возможностей языка нет. ATM-TURBO 2А то что VB6 - это COM ориентированный ЯП ты учитываешь? То что всегда любой класс в VB6 - это автоматически COM класс?Вообще наплевать. ATM-TURBO 2Если это работает не так как тебе хочется - это не значит что это неправильно.Я не сказал, что это не правильно, это единственный выход. И выход этот - через жопу. И если единственный выход через жопу, то правильно его и использовать. Элементарный пример: чтобы унаследовать реализацию в VB.NET нужно написать одно-единственное слово Implements и имя наследуемого класса. А как нужно извратиться на VB6, чтобы добиться того же самого? ATM-TURBO 2Не понимаю как это относится к полиморфизму на основе интерфейсов.Никак, потому что это нормальный синтаксический полиморфизм, а не поипень с интерфейсами. ATM-TURBO 2Не знаю в каком нужно быть состоянии чтобы смеяться над этим.В адекватном, попытайся в него, наконец, придти. ATM-TURBO 2Да ладно, то-то в IClassFactory::CreateInstance pUnkOuter как костыль придумали.Это не для VB6 придумали, наоборот, VB6 придумали, чтобы скрыть эту тряхомудию от разработчика. Половину работы с COM скрыли от разработчика, вследствие этого простые вещи стали вообще элементарными, а непростые стали еще сложнее. Но это опять же не имеет никакого отношения к возможностям VB6 как языка, это имеет отношение к среде разработки и компилятору. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 09:40 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
boobyAntonariyпропущено... ваше личное понимание ООП никого не волнует. Вы сами принципиально не читаете то, на что ссылаетесь? [spoiler ]сбрендившая википедияТо есть фактически речь идет о прогрессирующей организации информации согласно первичным семантическим критериям: «важное/неважное», «ключевое/подробности», «родительское/дочернее», «единое/множественное». Прогрессирование, в частности, на последнем этапе дает возможность перехода на следующий уровень детализации, что замыкает общий процесс. Обычный человеческий язык в целом отражает идеологию ООП, начиная с инкапсуляции представления о предмете в виде его имени и заканчивая полиморфизмом использования слова в переносном смысле, что в итоге развивает[3] выражение представления через имя предмета до полноценного понятия-класса.дальше этот поток сознания нечетал. высер обо всем и ниачом. а я здесь - конкретно о языке VB6 и его возможностях по сравнению с другими ООП-языками. не в состоянии придерживаться темы - побереги клавиатуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 09:44 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
автородно-единственное слово ImplementsInherits же совсем уже vb стал забывать с этим сишарпом ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 09:56 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
Antonariyboobyпропущено... Вы сами принципиально не читаете то, на что ссылаетесь? [spoiler ]пропущено... дальше этот поток сознания нечетал. высер обо всем и ниачом. а я здесь - конкретно о языке VB6 и его возможностях по сравнению с другими ООП-языками. не в состоянии придерживаться темы - побереги клавиатуру. тебе нет смысла начинать судить. Ни о VB6 ни о "других ооп-языках" ни о "наследовании реализации". Ты даже не смог сформулировать своими словами, что ты понимаешь под этой странной аббревиатурой - ооп. Существо дела вскрывают твои взбздохи и придыхания по части "наследования реализации" - ничего содержательного ожидать не приходится. А абстракция и полиморфизм, как независимые киты чего-то, так и не получившего определения - всего лишь вишенка на торте твоей беспросветной гордости от того, что ты ушел от VB6. Ушел от того, чего не понимал, и с удовольствием продолжил заниматься тем, смысл чего тебе даже не интересен. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 10:19 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
авторАкуеть. Я предъявляю претензии к языку VB6, его синтаксису, а меня пытаются разубедить с помощью другого языка. В адеквате вообще? А давай вообще писать библиотеки на с++, в котором ООП-фарша вдвое больше, чем в VB6, подрубать к VB6 и мощно наслаждаться его "возможностями"? Нет, ты либо сам не в адеквате, либо не помнишь о чем писал: авторНет наследования и полиморфизма Приведен пример с наследованием интерфейса в виде IDWriteTextRenderer и его реализация в VB6. Если бы это было невозможно, как ты утверждаешь, то на VB6 это реализовать не получилось от слова совсем (дословно "Нет наследования и полиморфизма"). Любой класс как минимум наследован от IDispatch и IUnknown. То что наследование интерфейсов реализовано в IDL - не имеет значения, это сродни высказыванию что в vb6 нет возможности проиграть звук, т.к. придется объявить внешнее API или подключить внешний компонент. Когда говорят что нет какой-то фичи, а она реализуется не так как ты привык - это не значит что это неправильно. Если есть контр-пример реальной задачи которую как ты говоришь не решить в ОО-парадигме VB6, прошу. авторА ее нет, совсем нет. Нет даже прямого объявления интерфейса, компилятором за интерфейс считается объявление класса. Ересь, что же тогда такое PublicNotCreateble? В C++ тоже самое, интерфейс - абстрактный класс, тебя это не смущает? авторА есть - костыли на IDL Костыли - потому что ты так сказал? авторНет ни того ни другого. Чтобы наследовать интерфейсы, нужно изучить совершенно другой язык, язык описания интерфейсов - IDL. А а вместо прозрачного синтаксического полиморфизма - поипень с интерфейсами. Костыли есть, а синтаксических возможностей языка нет. Опять-таки, приведи реальную задачу. авторВообще наплевать. Конечно тебе наплевать, ты вероятно не до конца прочитал то что я тебе написал. авторЯ не сказал, что это не правильно, это единственный выход. И выход этот - через жопу. И если единственный выход через жопу, то правильно его и использовать. Нет, ты сказал что этого вообще нет. Или ты уже так не считаешь? авторЭлементарный пример: чтобы унаследовать реализацию в VB.NET нужно написать одно-единственное слово Implements и имя наследуемого класса. А как нужно извратиться на VB6, чтобы добиться того же самого? Через включение. Далее зависит от задачи либо агрегировать, либо делать доп. перенаправление, либо делегировать напрямую внутреннему объекту. Этот путь считается более гибким: авторВложенные объекты нового класса обычно объявляются закрытыми, что делает их недоступными для прикладных программистов, работающих с классом. С другой стороны, создатель класса может изменять эти объекты, не нарушая при этом работы существующего клиентского кода. Кроме того, замена вложенных объектов на стадии выполнения программы позволяет динамически изменять её поведение. Механизм наследования такой гибкостью не обладает, поскольку для производных классов устанавливаются ограничения, проверяемые на стадии компиляции. авторНикак, потому что это нормальный синтаксический полиморфизм, а не поипень с интерфейсами. Нормальный? Ты сказал? То-то в COM юзают интерфейсы из-за того что это "поипень". авторВ адекватном, попытайся в него, наконец, придти. Я сомневаюсь что в адекватном. авторНо это опять же не имеет никакого отношения к возможностям VB6 как языка, это имеет отношение к среде разработки и компилятору. Пфф... При чем тут тогда костыли, я не понял тебя? Я тебе скинул ссылку на книгу где это реализуется и привел нативную поддержку этого через юзерконтролы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 11:08 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
boobyAntonariyпропущено... дальше этот поток сознания нечетал. высер обо всем и ниачом. а я здесь - конкретно о языке VB6 и его возможностях по сравнению с другими ООП-языками. не в состоянии придерживаться темы - побереги клавиатуру. тебе нет смысла начинать судить.тебе нет смысла мне писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 11:37 |
|
VB6 и ООП
|
|||
---|---|---|---|
#18+
ATM-TURBO 2 Приведен пример с наследованием интерфейса в виде IDWriteTextRendererПриведен пример наследования одного интерфейса от другого, выполенный на IDL (вероятно, tlb я не декомпилировал). Приведен пример реализации финального интерфейса, выполненный на VB6. Нет примера наследования одного интерфейса от другого на VB6, и быть не может. Потому что нет в VB наследований интерфейсов, есть только объявления и реализации. ATM-TURBO 2 Ересь, что же тогда такое PublicNotCreateble?Модификатор класса, фишка IDE и компилятора VB6 - она даже не в синтаксисе языка реализована. Впрочем это не важно, фишка штатная и легко доступная. В VB.NET тоже самое делается так: Код: vbnet 1.
Но мои-то претензии о том, чего нет, а не о том, что есть. Есть такая штатная возможность - прекрасно, и я ей пользовался. Единственный минус - среда не предупредит заранее о невозможности создать класс до тех пор пока не произойдет попытка создания. Впрочем, .NET-среда вроде тоже не предупреждает. ATM-TURBO 2Костыли - потому что ты так сказал?Потому что логика. Слышал о такой науке? Если человеку трудно ходить ногами, он берет в помощь костыли. Если VB6 не умеет наследовать интерфейсы, он берет в помощь IDL. Следовательно, IDL для VB6 это тоже самое, что костыли для человека. ATM-TURBO 2Опять-таки, приведи реальную задачу.Реальных задач с наследованием интерфейсов у меня нет, а пример пожалуйста: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Само собой, что Implements I2 это то же самое, что в VB6 Class C1 Implements I1, I2, но тут фишка в том, что при наличии множества классов, которые должны реализовывать несколько одних и тех же интерфейсов, можно объявить интерфейс-агрегат и не забивать себе голову списком всех необходимых интерфейсов. Не сильно востребованная фишка в реальной жизни, но про "наследование интерфейсов" ты первый высказался, так что я не мог обойти эту тему вниманием. ATM-TURBO 2Конечно тебе наплевать, ты вероятно не до конца прочитал то что я тебе написал.Наплевать заранее, еще до чтения тебя. Потому что COM возможности VB6 не определяет. Ну то есть вообще. COM это технология доступа к программным объектам, разбросанным по разным файлам, через реестр операционной системы. На каком языке пишутся COM-библиотеки, из каких языков к ним обращаются - абсолютно не важно, в библиотеках нет никакого ООП. В нем есть лишь плоская таблица экспорта методов, и даже наличие tlb опционально. Описание интерфейса и типов нужно лишь на этапе разработки/компиляции или при позднем связывании. ATM-TURBO 2Нет, ты сказал что этого вообще нет. Или ты уже так не считаешь? Я сказал, что этого нет в языке . За рамками языка, его синтаксиса, то есть через жопу с костылями - есть. ATM-TURBO 2Нормальный? Ты сказал? То-то в COM юзают интерфейсы из-за того что это "поипень".Да, я сказал. А еще я сказал, что поипень это полиморфизм на основе интерфейсов, а не сами интерфейсы. Я внимательно слежу за тем, что говорю. ATM-TURBO 2Через включение.Объявить базовый объект в приватной переменной, пробросить свойства и методы... То есть всю ту мутоту, которую по сути делает за программиста компилятор в приличном ООП-языке, нужно колбасить вручную. По-честному это называется просто - в VB6 нет наследования. Его нужно делать . Своими руками. Хоть и без сторонних костылей, как с наследованием интерфейсов. Мартышкин труд я это называю. ATM-TURBO 2Пфф... При чем тут тогда костыли, я не понял тебя? Я тебе скинул ссылку на книгу где это реализуется и привел нативную поддержку этого через юзерконтролы.Если для того, чтобы сделать на VB6 элементарные вещи, входящие в базовую спецификацию иного приличного ООП-языка, требуется читать advanced талмуды энтузиастов-исследователей черезжопных маршрутов, то какие еще выводы можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2018, 13:23 |
|
|
start [/forum/topic.php?fid=60&fpage=10&tid=2155043]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 174ms |
0 / 0 |