На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 292 293 [294] 295 296 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    scorpion, ну, если б не было уже с год как готового commIO, тогда б CComm сам бы реализовывал работу с RS, а так почему б и не заюзать повторно готовое. А почему CPropertyRS и CPropertyMedia, я уже объяснил. Один - POD, чтобы доступ к свойствам мог быть предоставлен в процедурном стиле, второй - чтоб унифицировать работу с реализациями свойств физического канала для самой DLL, ибо физическим каналам позволяется быть разными, а не только RS. Аналогичный дизайн имеет также протокол двустороннего асинхронного взаимодействия по некоему физическому каналу. Полудуплексный ГОСТ 28854-90 лишь один из возможных.
    Формально - внешнее приложение указывает желаемые протокол и физический канал, фабрика строит стек и возвращает ему handle, по сути указатель на получившийся прикладной интрефейс. Этот handle приложение в дальнейшем использует для ссылки на сконструированный стек во всех экспортируемых DLL функциях. DLL вытаскивает из него нужные интерфейсы dynamic_cast<>-ом и дёргает методы. Наследование для этого подходило лучше, нежели агрегация.
      Цитата D_KEY @
      Все, можно сказать, наоборот. Интерфейсы появились как средство, необходимое в языке с запретом множественного наследования.

      Откуда такая логика? Интерфейс - это глагол - выражает вопрос на тему "Что я умею", класс же, напротив существительное, "что я есть". Это даже у Страуструпа написано, ЕМНИП.
        Цитата scorpion @
        Если речь о С++, то тут стоит задуматься, абстрактный класс может вполне выступать в роли интерфейса.
        Иногда я думаю, что наличие интерфейсов в C++ не помешало бы. Но на практике я от этого как-то не страдаю. Так что вопрос об объективной мотивации интерфейсов в C++ пока без ответа.
          Цитата scorpion @
          Цитата D_KEY @
          Его множественное наследование разрешено, то в интерфейсах(в том виде, что они есть в Delphi/C#/Java) просто нет необходимости.

          Есть необходимость, очень даже существенная!

          Например?

          Цитата
          Непонимаю откуда выводы такие взялись?

          Во-первых, интерфейсы появились в языках, где было запрещено множественное наследование, как средство, позволяющее избежать некоторых недостатков такого решения.
          Во-вторых, в языке с множественным наследованием абстрактные классы выполняют те задачи, что возлагаются на интерфейсы в языках с запретом множественного наследования.
          В-третьих, есть ли языки с множественным наследованием и интерфейсами? Не припоминаю.
          Сообщение отредактировано: D_KEY -
            Цитата Qraizer @
            и не заюзать повторно готовое. А почему CPropertyRS и CPropertyMedia, я уже объяснил. Один - POD, чтобы доступ к свойствам мог быть предоставлен в процедурном стиле, второй - чтоб унифицировать работу с реализациями свойств физического канала для самой DLL, ибо физическим каналам позволяется быть разными, а не только RS. Аналогичный дизайн имеет также протокол двустороннего асинхронного взаимодействия по некоему физическому каналу. Полудуплексный ГОСТ 28854-90 лишь один из возможных.

            ололо... давай по делу. без обид, ежели чего.
            Цитата Qraizer @
            если б не было уже с год как готового commIO, тогда б CComm сам бы реализовывал работу с RS, а так почему б и не заюзать повторно готовое. А

            Вот например, нахрена тебе пришлось отнаследоваца от кучи класов? Я конечно все понимаю, возможно так нужно было, или там еще чего, ну ГОСТы это сильно, и не в тему, я не осилил честно... Просто не знаю деталей, пусть даже как то обстрактно, на какомто примере. Если есть возможность поведуй?

            Цитата Qraizer @
            Формально - внешнее приложение указывает желаемые протокол и физический канал, фабрика строит стек и возвращает ему handle, по сути указатель на получившийся прикладной интрефейс. Этот handle приложение в дальнейшем использует для ссылки на сконструированный стек во всех экспортируемых DLL функциях. DLL вытаскивает из него нужные интерфейсы dynamic_cast<>-ом и дёргает методы. Наследование для этого подходило лучше, нежели агрегация.

            Бла бла бла.,.. опят ьне в тему. Зачем ты расказываешь процесс? Мне интересно услышать зачем такое, а не как оно работает, если что ;)
              Цитата scorpion @
              Цитата D_KEY @
              Все, можно сказать, наоборот. Интерфейсы появились как средство, необходимое в языке с запретом множественного наследования.

              Откуда такая логика? Интерфейс - это глагол - выражает вопрос на тему "Что я умею", класс же, напротив существительное, "что я есть". Это даже у Страуструпа написано, ЕМНИП.

              Давайте не будем путать интерфейсы и абстрактные классы.
                Цитата Qraizer @
                Иногда я думаю, что наличие интерфейсов в C++ не помешало бы. Но на практике я от этого как-то не страдаю. Так что вопрос об объективной мотивации интерфейсов в C++ пока без ответа.

                интерфейсы в С++ и так имеются, но с оговоркой конечно же. Например, что мешает создать интерфейс на С++ ?

                Цитата D_KEY @
                Например?

                Смотри мой предыдущий пост. Интерфейсы - это нечто другое, которое отличается от классов.

                Цитата D_KEY @
                Во-первых, интерфейсы появились в языках, где было запрещено множественное наследование, как средство, позволяющее избежать некоторых недостатков такого решения.

                Откуда информация? Если Вас не затруднит, не соизволи ли бы вы предоставить источник столь абсурдного материала?

                Цитата D_KEY @
                Во-вторых, в языке с множественным наследованием абстрактные классы выполняют те задачи, что возлагаются на интерфейсы в языках с запретом интерфейсов.

                ОМГ. А что собственно возлагается на интерфейсы, если не секрет?

                Цитата D_KEY @
                В-третьих, есть ли языки с множественным наследованием и интерфейсами? Не припоминаю.

                C# например :)

                Добавлено
                Цитата D_KEY @
                Давайте не будем путать интерфейсы и абстрактные классы.

                Давайте!
                  scorpion, всё объяснено. Читай.
                    Цитата Qraizer @
                    scorpion, всё объяснено. Читай.

                    Номер поста скажи хотябы.

                    Добавлено
                    Цитата Qraizer @
                    Иногда я думаю, что наличие интерфейсов в C++ не помешало бы.

                    Они есть в С++, правда в завуалированом виде, ну и что?

                    Qraizer, что конкретно мне почитать то? какой пост?
                      Если чтение не поможет, попробуй сам набросать архитектуру библиотеки по ТЗ: требуется разработать библиотеку для асинхронного двустороннего взаимодействия различных подсистем, способную использовать различные каналы передачи информации (как минимум RS-232/422, манчестерский канал и тех.канал) и протоколы (как минимум описываемый ГОСТ 28854-90); библиотека должна быть по возможности универсальна, кроссплатформенна и масштабируема. Скажу также, что удалёнными системами в частности были многопроцессорные встроенные системы на DSP, а со стороны стенда тестирования и метрологии были приложения и на Дельфи, и на билдере, и на VS6.

                      Добавлено
                      А, ну ещё там в ТЗ перечислялись команды и их параметры, которые прикладной уровень должен предоставлять и понимать. Они были реализованы в DLL большей частью собственно экспортируемыми функциями и каллбэками для приложений. Команды как в сторону тестируемего изделия, так и в обратную. Если в обратную, то где в виде ответов на запросы стенда, где являющиеся инициирующими серию обменов по собственной, а не стенда, инициативе.
                        Цитата scorpion @
                        Цитата D_KEY @
                        Например?

                        Смотри мой предыдущий пост. Интерфейсы - это нечто другое, которое отличается от классов.

                        Так пример приведите пожалуйста.

                        Цитата
                        Откуда информация? Если Вас не затруднит, не соизволи ли бы вы предоставить источник столь абсурдного материала?

                        Из нескольких книг(в том числе и по Java, возможно, что и у Эккеля об этом написано).
                        А вот, например, что пишут в вики:
                        Цитата wikipedia
                        Languages that support multiple inheritance include: C++, Common Lisp (via CLOS), EuLisp (via The EuLisp Object System TELOS), Curl, Dylan, Eiffel, Logtalk, Object REXX, Scala (via the use of mixin classes), OCaml, Perl, Perl 6, Python, and Tcl (via Incremental Tcl).[1]

                        Other object-oriented languages, such as Java and Ruby implement single inheritance, although protocols, or "interfaces," provide some of the functionality of true multiple inheritance.


                        Цитата
                        Цитата D_KEY @
                        В-третьих, есть ли языки с множественным наследованием и интерфейсами? Не припоминаю.

                        C# например :)

                        В указанном языке нет множественного наследования.
                          Цитата Qraizer @
                          Если чтение не поможет, попробуй сам набросать архитектуру библиотеки по ТЗ: требуется разработать библиотеку для асинхронного двустороннего взаимодействия различных подсистем, способную использовать различные каналы передачи информации (как минимум RS-232/422, манчестерских канал и тех.канал ) и протоколы (как минимум описываемый ГОСТ 28854-90); библиотека должна быть по возможности универсальна, кроссплатформенна и масштабируема. Скажу также, что удалёнными системами в частности были многопроцессорные встроенные системы на DSP, а со стороны стенда тестирования и метрологии были приложения и на Дельфи, и на билдере, и на VS6.

                          Я не понимаю сути, ну сделать БД, используя нынешние технологии, мускуль там или еще чота... Зачем ты ТЗ приводишь? Во первых оно очень зжатое, я непонял ничего, во вторых речь шла об интерфесах, причем тут архитектура библиотеки? Меня просто заинтересовало, зачем наследоваца от 3-х классов/структур? Это типо модно? Не ну костыли я понять могу, ну чтоб прям таки модно, и зачем такое, мне интересно?

                          Добавлено
                          Цитата D_KEY @
                          Так пример приведите пожалуйста.

                          Так разжевал ведь, Интерфейс - это "Что я могу?", класс - "Что я есть?". неужели не понятно?

                          Цитата D_KEY @
                          Из нескольких книг(в том числе и по Java, возможно, что и у Эккеля об этом написано).
                          А вот, например, что пишут в вики:

                          Гггг, ну что могу сказать? Давай програмить как на вики написано? Или что? То что ты выделил жирным в цитате из вики, говорит как раз о том, что я тут говорю. Где подвох то?
                            В таком случае, scorpion, сорри. Боюсь, понятнее не объясню.
                            Снаружи этой иерархии не видно, она внутри библиотеки. Снаружи - только API этой DLL в виде .h и .lib, для Дельфи ещё .pas с unit-ом внутри. Вот просто попробуй представить, как бы ты построил эти .h, .lib и .pas, чтобы было удобно и авторам писать приложения, которые тестируют, измеряют и поверяют модули вон в той коробочке, и тебе, автору DLL, чтобы соответствовать требованиям ТЗ. Т.е. что б можно было выткнуть RS-232, воткнуть MIL-STD-1553, сменить полудуплексный ГОСТовый на полнодуплексый самопальный вон того парня из соседнего отдела, нажать пару кнопок в приложении и продолжить работу.
                            Цитата scorpion @
                            Зачем ты ТЗ приводишь?
                            Потому что именно в этом виде я его и получил. Не более, чем ты видишь.
                              D_KEY, кстати ссылочку можно кинуть плз? а то в предыдущем посте есть инфа типа ссылка на вики, а ссылки(физической) нема
                              Я об этом:
                              :(
                              Цитата D_KEY @
                              Languages that support multiple inheritance include: C++, Common Lisp (via CLOS), EuLisp (via The EuLisp Object System TELOS), Curl, Dylan, Eiffel, Logtalk, Object REXX, Scala (via the use of mixin classes), OCaml, Perl, Perl 6, Python, and Tcl (via Incremental Tcl).[1]

                              Other object-oriented languages, such as Java and Ruby implement single inheritance, although protocols, or "interfaces," provide some of the functionality of true multiple inheritance.


                              Добавлено
                              Цитата Qraizer @
                              В таком случае, scorpion, сорри. Боюсь, понятнее не объясню.

                              А ты посторайся, ну на банальном примере м.б.? Нахрена наследоваца от 3-х классов/структур? Я подозреваю это был костыль. Не, ну с кем не бывает, что там говорить, я не собираюсь язвить. Меня интересует суть.

                              Цитата Qraizer @
                              Снаружи этой иерархии не видно, она внутри библиотеки. Снаружи - только API этой DLL в виде .h и .lib, для Дельфи ещё .pas с unit-ом внутри. Вот просто попробуй представить, как бы ты построил эти .h, .lib и .pas, чтобы было удобно и авторам писать приложения, которые тестируют, измеряют и поверяют модули вон в той коробочке, и тебе, автору DLL, чтобы соответствовать требованиям ТЗ. Т.е. что б можно было выткнуть RS-232, воткнуть MIL-STD-1553, сменить полудуплексный ГОСТовый на полнодуплексый самопальный вон того парня из соседнего отдела, нажать пару кнопок в приложении и продолжить работу.

                              Я все понимаю, ты можешь излить душу, я тебя выслушаю. У Самого такое было... Ну жоский рефакторинг тебе посоветую, я бы так и поступил. Если код говно - то что скрывать,его срочно нужно переделывать, не нужно делать из говна - еще больше говна. Я так считаю.

                              Добавлено
                              Цитата Qraizer @
                              Потому что именно в этом виде я его и получил. Не более, чем ты видишь.

                              Эвона как... Сочувствую, бывают и такие приколы, а что поделать? Остаеца только БА или клиента тревожить...

                              ЗЫЖ мне интересно наследование от 3-х классов/структур, в практическом смысле слова. Если это костыль был, то так и скажи, яж не против, сам такое проходил. Просто не нужно это за преемущество представлять.

                              Добавлено
                              Ну вот.... все ушли :( Обидно...

                              Добавлено
                              Цитата Qraizer @
                              Снаружи этой иерархии не видно, она внутри библиотеки. Снаружи - только API этой DLL в виде .h и .lib, для Дельфи ещё .pas с unit-ом внутри.

                              Ну да, чо там.

                              Цитата Qraizer @
                              Вот просто попробуй представить, как бы ты построил эти .h, .lib и .pas, чтобы было удобно и авторам писать приложения, которые тестируют, измеряют и поверяют модули вон в той коробочке, и тебе, автору DLL, чтобы соответствовать требованиям ТЗ. Т.е. что б можно было выткнуть RS-232, воткнуть MIL-STD-1553, сменить полудуплексный ГОСТовый на полнодуплексый самопальный вон того парня из соседнего отдела, нажать пару кнопок в приложении и продолжить работу.

                              Очень просто все это делается, береца проект, и делаеца... Если у вон того полудуплексного парня возникли проблемы, то этот полудуплексный парень начинает курить код, если код его не вставляет, то идет ко мне, я ему объясняю что к чему и как, реализацию объяснять думаю - это самое дерьмо, и никто не будет этим болеть, разве что ревьювер проревьювит все досконально(якобы)...и скажет где косяки...В остальном проблем думаю не будет. Особенно, если учесть что .dll я уже много раз создавал якобы...


                              Цитата Qraizer @
                              Вот просто попробуй представить, как бы ты построил эти .h, .lib и .pas, чтобы было удобно и авторам писать приложения, которые тестируют, измеряют и поверяют модули вон в той коробочке, и тебе, автору DLL, чтобы соответствовать требованиям ТЗ. Т.е. что б можно было выткнуть RS-232, воткнуть MIL-STD-1553, сменить полудуплексный ГОСТовый на полнодуплексый самопальный вон того парня из соседнего отдела, нажать пару кнопок в приложении и продолжить работу.

                              Думаю все можно было реализовать в виде автономного модуля, ну типа .dll или там .ocx, если речь о COM !? а так хз...
                                Цитата D_KEY @
                                Почему бы не существовать объекту "текста", который бы делал бы всю работу по хранению и работы с текстом, и отдельному объекту, который бы умел отображать текст нужного размера, шрифта и т.п.
                                Ты не поверишь, но сейчас ты описал TLabel, отображающий текст и его свойство Caption :)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 292 293 [294] 295 296 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.4292 ]   [ 15 queries used ]   [ Generated: 1.08.26, 06:45 GMT ]