На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 317 318 [319] 320 321 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата scorpion @
    Ну вот, теперь они уже не закрытые, а защищеные стали.

    Реализация может быть в любой секции, определяется это при написании класса, по общим правилам.
    И на мой взгляд, четкое разделение интерфейсов гораздо лучше утиной типизации объекта к любому из них, в любом случае.
    Сообщение отредактировано: Romkin -
      Цитата D_KEY @
      :good:

      Да, но она для C++0x... :)
        Цитата Flex Ferrum @
        Будет amgigous name resolution. Но это компилятор проконтролирует.

        Гммм... Не понял слегка. Диспетчеру должно быть известно о всей иерархии наследования?
          Цитата Flex Ferrum @
          Цитата D_KEY @
          :good:

          Да, но она для C++0x... :)

          Все-равно :good:
          Даже лучше, а то было бы много странного кода :)
            Romkin, у вас крайне странный подход к проектированию...
              Цитата korvin @
              потому что класс нам об этом сказал, потому что в этом суть интерфейсов, а не в том, что вы думаете

              В этом суть абстрактных классов (что, где и как), интерфейсы обязывают только реализацию.
                Цитата MyNameIsIgor @
                Romkin, у вас крайне странный подход к проектированию...

                Нормальный. Четкое разделение функций. Фактически интерфейсы используются для присоединения дополнительного функционала, и есть свободный выбор в способах реализации. И четко отделяются области использования основного функционала и этого дополнительного.
                  в общем то, что вы хотите сделать делается так:
                  ExpandedWrap disabled
                    unit Users
                     
                    interface
                     
                    type
                      IGuest = interface
                        procedure foo;
                      end;
                     
                      IAdmin = interface(IGuest)
                        procedure bar;
                      end;
                     
                    function createGuest : IGuest;
                    function createAdmin : IAdmin;
                     
                    implementation
                     
                    type
                      TUser = class(TInterfacedObject, IAdmin)
                        procedure foo;
                        procedure bar;
                      end;
                     
                    procedure TUser.foo;
                    begin
                      //
                    end;
                     
                    procedure TUser.bar;
                    begin
                      //
                    end;
                     
                    function createGuest : IGuest;
                    begin
                      Result := TUser.Create;
                    end;
                     
                    function createAdmin : IAdmin;
                    begin
                      Result := TUser.Create;
                    end;
                     
                    end;

                  и не важно в какой секции объявлены методы TUser
                    Цитата scorpion @
                    Это ты конкретно сейчас про делфи сказал? Вон корвин, что та там кастит и ниче, прокатывает.

                    Там прокатывает потому что они в реализации класса, а здесь нет.
                      Цитата Romkin @
                      Реализация может быть в любой секции, определяется это при написании класса, по общим правилам.

                      Если твоя функциональность распологается в private секции класса, зачем ее тогда вообще пихать в интерфейс?

                      Добавлено
                      Цитата DesweR @
                      Там прокатывает потому что они в реализации класса, а здесь нет.

                      Там прокатывают, тут не прокатывают. Я тебя спросил: Это ты конкретно сейчас про делфи сказал?
                        Цитата scorpion @
                        И кто будет использовать голые классы, имея в своем распоряжении интерфейсы?

                        И кому нужна вообще "строгая типизация"? :whistle:
                          Цитата scorpion @
                          Если твоя функциональность распологается в private секции класса, зачем ее тогда вообще пихать в интерфейс?

                          По той же причине, почему может быть несколько интерфейсов у класса. Объект тоже обладает своим интерфейсом, по какой причине он должен дополнительно публиковать еще и методы своих интерфейсов? (блин, тавтология получилась)
                            Цитата scorpion @
                            Это ты конкретно сейчас про делфи сказал?

                            Да.
                              Цитата DesweR @
                              И кому нужна вообще "строгая типизация"? :whistle:

                              Ты о чем?
                                Цитата scorpion @
                                Ты о чем?

                                Программисты никогда не ошибаюся.

                                Добавлено
                                Цитата Romkin @
                                По той же причине, почему может быть несколько интерфейсов у класса. Объект тоже обладает своим интерфейсом, по какой причине он должен дополнительно публиковать еще и методы своих интерфейсов?

                                И их реализация в классе может изменится (пример с логгированием и коллизией метод разных интерфейсов).
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 317 318 [319] 320 321 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.4888 ]   [ 15 queries used ]   [ Generated: 31.07.26, 20:11 GMT ]