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

      1) да хоть owner, Inc же писал способы, и CodeMonkey в соседней теме не раз упоминал InterfacedObject
      2)
      ExpandedWrap disabled
          property Left read Point.X;
          property Top read Point.Y;

      вместо возврата точки. заодно и обращение короче.
      3) нет, ведь мы можем присвоить полю новый объект-точку вместо старой.

      Добавлено
      Цитата Повстанець @
      Каждый язык, прямо или коственно поддерживает ООП. Вопрос только как именно поддерживает. С++ имеет некую объектную модель, позволяющую покрыть не всю, конечно, но бОльшую часть потребностей, возникающих при ООП проектировании на уровне объявления. Всё то же самое можно реализовать и в С, процедурами, указателями и модулями. Но на уровне реализации. В делфи тоже есть некая объектная система, но элементарная защита объекта реализуется почему то сишными способами.

      а const -- это ппц какой оопшный способ? а защита объекта делается в делфи обычным оопшным способом -- инкапсуляцией
        Цитата korvin @
        а const -- это ппц какой оопшный способ?
        Во всяком случае один из способов. В обїектную модель тоже вписуется довольно неплохо.
        Цитата korvin @
        а защита объекта делается в делфи обычным оопшным способом -- инкапсуляцией
        Не поверишь... В С++ защита тоже делается инкапсуляцией. И в С тоже. И на бейсике. Вопрос только -- какой ценой даётся инкапсуляция. :)
          Цитата korvin @
          а защита объекта делается в делфи обычным оопшным способом -- инкапсуляцией

          Инкапсуляция не решает задач const - добавить к объекту контекст гарантирующий или нет неизменность состояния объекта. Инкапсуляция решает задачу разделения доступа к объекту ;)
            Цитата Повстанець @
            Во всяком случае один из способов. В обїектную модель тоже вписуется довольно неплохо.

            и как ООП определяет этот механизм?
              Если объект куда-то передается параметром, то требовать его неизменности глупо, зачем передаешь тогда спрашивается? Нужно чтобы объект не трогали - так передавай не сам объект, а его параметры. Это единственный способ что-то гарантировать, остальные - это чисто полагаться на совесть разработчика
                Цитата Мяут-Настоящий @
                Инкапсуляция не решает задач const - добавить к объекту контекст гарантирующий или нет неизменность состояния объекта.

                угу, вот так взяли и одним махом изменили интерфейс объекта, описанный в его классе.
                  Цитата korvin @
                  и как ООП определяет этот механизм?
                  Как ограничение допустимых операций.
                  Цитата --Ins-- @
                  Если объект куда-то передается параметром, то требовать его неизменности глупо, зачем передаешь тогда спрашивается? Нужно чтобы объект не трогали - так передавай не сам объект, а его параметры. Это единственный способ что-то гарантировать, остальные - это чисто полагаться на совесть разработчика
                  забыл добавить "в делфи".
                  Сообщение отредактировано: Повстанець -
                    Цитата Мяут-Настоящий @
                    Инкапсуляция решает задачу разделения доступа к объекту ;)

                    не разделения, а ограничения. и не к объекту, а к его внутренней структуре.
                      Цитата Повстанець @
                      забыл добавить "в делфи".


                      Не забыл
                        Цитата Повстанець @
                        Как ограничение допустимых операций

                        можно ссылку на источник (литературу/статью)?
                          Цитата --Ins-- @
                          Цитата Повстанець @
                          забыл добавить "в делфи".


                          Не забыл

                          Странно. Я не вижу. :unsure:

                          Добавлено
                          Цитата korvin @
                          можно ссылку на источник (литературу/статью)?
                          Можешь ссылаться на меня. Если у тебя есть другое определение константности объекта, с удовольствием его послушаю.
                            Цитата Повстанець @
                            Можешь ссылаться на меня. Если у тебя есть другое определение константности объекта, с удовольствием его послушаю.

                            меня интересует, как теория ООП(ну или известная литература/специалисты по ООП) определяют механизм, изменяющий интерфейс объекта (и видимо всех его членов-объектов). таков был вопрос вообще-то.
                            Сообщение отредактировано: korvin -
                              Цитата korvin @
                              меня интересует, как теория ООП(ну или известная литература/специалисты по ООП) определяют механизм, изменяющий интерфейс объекта (и видимо всех его членов-объектов)
                              Какая теория ООП? Программирование стало академической наукой? Где я был в это время? Нет никакой теории. Ести ИМХО отдельных специалистов. Ты конечно хочешь мне намекнуть, что такого понятия, как константный объект нет. Но ведь константные объекты есть, а понятия нет. Как так получается? Если его действительно нет -- считай меня пионером и можешь смело ссылаться.
                                Цитата korvin @
                                угу, вот так взяли и одним махом изменили интерфейс объекта, описанный в его классе.

                                Ээээ, наоборот, конкретизировали:
                                ExpandedWrap disabled
                                  class C {
                                    public:
                                      int f() const {
                                         //Здесь гарантируется, что объект неизменен
                                      }
                                  };
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 49 50 [51] 52 53 ...  494 495


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