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

    Хотеть то можно чего угодно. Вопрос в том, зачем это нужно?
      Цитата KILLER @
      Естественно, там где нет AfterConstruction - на всех этих языкам, бедные программеры, только и делают что извращаются :lol:

      нет конечно! но вот это миф. хотя делфийские after-и befor-методы -- это жуткий примитивизм

      Добавлено
      Цитата Повстанець @
      Как мне обеспечить инкапсуляцию в данном случае?

      возвращай новый объект, а не тот который в поле, либо пересмотри интерфейс TRect, может для него и не нужно возвращать эту точку?
      Сообщение отредактировано: korvin -
        Цитата KILLER @
        Конечно, потому как по другому просто не даст


        Почему? Я в Delphi-конструкторах могу сделать все то же, что и в c++/c#, и даже больше, причем значительно ;)

        Цитата MyNameIsIgor @
        это камасутра в худших её проявлениях.


        Задача надумана, не спорю, но мне просто нужен был пример класса с двумя индексными свойствами. Это нормальная задача? Нормальная. Я ее решил как она стояла - два свойства так два свойства, ну и красоты ради продемонстрировал как в таком большом количестве свойств обойтись всего четырьмя методами. Посчитай сколько методов у тебя :) Ну а про то, как были индексаторы сэмулированы - это круто, такая простая задача требует таких извратов :wacko:
          Цитата korvin @
          нет конечно! но вот это миф

          Причем тут AfterConstruction ?
            Цитата --Ins-- @
            Цитата MyNameIsIgor @
            Вместо того, чтобы иметь методы getActiveControl и setActiveControl.


            Не понял как методы тебе помогут в чем-либо? Свойства - это с одной стороны просто сокращенная запись методов

            Цитата korvin @
            есть же вроде в делфи то же приписывание объекту владельца, который его удалит


            Миллион способов автоматического контроля жизни объектов
            1. Owner
            2. Оборачиваем в интерфейс. Интерфейсы автоматически финализируются
            3. Helper к классу TObject позволит просто подключить автоконтроль времени жизни ко всем типам объектов, которые захочешь

            И не одного, удобного клиенту.

            Цитата
            Цитата D_KEY @
            А разве в Delphi можно сказать этому объекту владельцу, чтобы он вел себя как ссылка или указатель? В С++ умные указатели-владельцы имеют интерфейс указателей(*, -> и т.п.).


            В с++ много чего не по-человечески сделано. А в Delphi можно сказать объекту-владельцу, чтобы он вел себя как объект-владелец, а не то, чем он не является. В древнем Китае желающим странного отрубали голову. Очень мудро

            :wacko: Что тут странного? Обычная перегрузка операторов. Предоставляем косвенный доступ к объекту указанного класса.
              Цитата korvin @
              возвращай новый объект, а не тот который в поле, либо пересмотри интерфейс TRect, может для него и не нужно возвращать эту точку?
              Т.е. концептуально свойства не в состоянии обеспечить инкапсуляцию, в общем случае?
                Цитата korvin @
                Цитата D_KEY @
                Возвращать копию? А зачем создавать новые объекты?

                затем, что иначе вернешь тот же самый объект, того же самого типа.

                если типом является ссылка, то почему бы не иметь возможность указать, что нельзя модифицировать объект?
                  Цитата --Ins-- @
                  Почему? Я в Delphi-конструкторах могу сделать все то же, что и в c++/c#, и даже больше, причем значительно ;)

                  Ага, я тебе верю, как вы там говорили - отстрелить себе ногу или голову проще некуда, или что то в етом роде, забыл чота :scratch:
                    Цитата KILLER @
                    Причем тут AfterConstruction ?

                    ну... при всем. это в некотором роде точка соединения, в которой применяется совет
                      Цитата --Ins-- @
                      Задача надумана, не спорю, но мне просто нужен был пример класса с двумя индексными свойствами.

                      Так в том то и дело, что так не проектируется. Кто же будет моделировать предметную область исходя из "хочу класс с двумя индексными свойствами!" Подгонка задачи под инструмент?
                      То, что кто-то захотел эти "два индексных свойства" - это понятно. Не понятно на кой они так нужны? Впрочем, как и свойства вообще.
                        Цитата korvin @
                        кстати, D_KEY, в Хаскелле нет const именно по семантике, нельзя мутабельное значение какого-нибудь IO-типа привести к немутабельному и передать "во вне" в качестве возвращаемого значения функции

                        Все-таки там скорее нет мутабельных типов, за некоторым ограничением. Поскольку использование мутабельных типов может быть ограничено специальными случаями, приведение к константным объектам, в принципе, не требуется, хотя никаких проблем я тут не вижу.
                          Цитата korvin @
                          ну... при всем. это в некотором роде точка соединения, в которой применяется совет

                          Ммм...Странно, что я до сих пор не почувствовал в нем острую потребность... :scratch:
                            Цитата MyNameIsIgor @
                            Подгонка задачи под инструмент?


                            Очень точное словосочетание в случае, когда ты отказываешься от индексных свойств (и заменяешь их страшно представить чем) потому, что твой инструмент их поддержку должным образом не обеспечивает. Очень точно сказано!

                            Цитата MyNameIsIgor @
                            Впрочем, как и свойства вообще.


                            Это влияние с++, точно тебе говорю. Там же вроде свойств нет, вот и невозможно теперь программируя в другом языке мыслить его категориями ;)
                              Цитата Повстанець @
                              Т.е. концептуально свойства не в состоянии обеспечить инкапсуляцию, в общем случае?

                              арргх! еще раз: интерфейс "класса-контейнера" (TRect), ну никак не должен влиять на интерфейс класса поля (TPoint)
                              если ты возвращаешь объект класса TPoint, то он и должен вести себя как объект класса TPoint. причем, поскольку ты возвращаешь тот же самый объект, а не его копию, то получаешь то эффект, которому так удивляешься. причем тут инкапсуляция -- не пойму
                                Цитата korvin @
                                Цитата --Ins-- @
                                Не помню как там в Обероне с этим...

                                тоже не помню, вроде можно. но лично мне Оберон не нравится, как там Реймонд писал "делай проще насколько возможно, но не слишком просто". Вирт, имхо, черезчур упрощает, примитивизирует свои языки

                                +1

                                Цитата
                                Цитата Повстанець @
                                Фиговенькая какая то инкапсуляция у этих ваших свойств... <_<

                                еще один... читай на предыдущей странице про инкапсуляцию
                                Да хоть зачитайся. Состояние объекта описывается, как правило, не самой ссылкой на поле, а именно значением поля, хотя объект и содержит ссылку. Если С++ позволяет запретить такие изменения, то Delphi - нет. В результате порождаем лишнии копии объектов и заставляем клиентов или вручную эти копии удалять, или использовать какие-то обертки, вместо нормального доступа.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 43 44 [45] 46 47 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.1511 ]   [ 14 queries used ]   [ Generated: 29.07.26, 07:34 GMT ]