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


    Я боюсь, что это будет скорее его вина. Когда ты пишешь код перед вызовом базового конструктора - ты берешь НА СЕБЯ ответственность за то, что ты делаешь, потому что да, это поведение в принципе идет вразрез с тем, которая была заложена создателем класса предка.

    Добавлено
    Хотя честно говоря во многом надуманная проблема. Реально не так часто высовы виртуальных методов в конструкторе приводят к чему-то подобному. А вот пользы от возможности их вызывать можно извлечь много. Кстати, особенно тут хороши виртуальные классовые методы, чего нет ни в плюсах, ни в джаве. А они и проблем никаких не вызовут в принципе
    Сообщение отредактировано: --Ins-- -
      Цитата --Ins-- @
      А вот пользы от возможности их вызывать можно извлечь много

      А ещё лучше - прорабатывать архитектуру так, чтобы не было необходимости делать такие вызовы. :D
        Цитата --Ins-- @
        А вот пользы от возможности их вызывать можно извлечь много

        И какая пользва в виртуальных конструкторах?
          Цитата Flex Ferrum @
          А ещё лучше - прорабатывать архитектуру так, чтобы не было необходимости делать такие вызовы.


          Проработать то можно, но она будет кривее. Удобно когда разработчик класса берет на себя больше, а клиенту оставляет меньше, чем когда клиент обязан помнить что и как ему нужно делать с тем или иным объектом
            Цитата jack128 @
            как бы создателю класса Object виднее, нужно экземпляры это класса класть в контейнер или нет. И если он решил, что нужно, значит нужно.

            Зачем объекту класть себя в какой-то (глобальный :blink: ?) контейнер? Не слишком ли сильная связанность?
            Впрочем, в С++ я тоже могу так делать.
              Цитата KILLER @
              И какая пользва в виртуальных конструкторах?


              Виртуальные конструкторы - это совсем другое, речь сейчас не о них. А польза от них - это встроенная в язык фабрика, которая для инстанцирования использует позднее связывание

              Добавлено
              Цитата D_KEY @
              Впрочем, в С++ я тоже могу так делать.


              Не можешь. Ты можешь полодить недоделанный объект разве что, ты не можешь гарантировать чтобы написанный тобой в конструкторе код положит объект в контейнер после вызова всех конструкторов. Конструкторы потомков будут выполнены после этого помещения
                Цитата --Ins-- @
                А польза от них - это встроенная в язык фабрика, которая для инстанцирования использует позднее связывание

                Зачем для инстанцирования использовать позднее связывание? :wacko: Нужен объект - создай его. А это получается как? Ну да... я же забыл, у вас конструктор - это же метод Initialize по сути, мало чего общего имеющий с настоящим конструктором, который выделяет память и т.д.
                  Цитата --Ins-- @
                  Проработать то можно, но она будет кривее.

                  Ты уверен? Вот я - нет... Т. е. может быть такая архитектура и будет позволять делать некоторые вещи удобнее, но правильнее она от этого не станет...
                    Цитата --Ins-- @
                    Не можешь. Ты можешь полодить недоделанный объект разве что, ты не можешь гарантировать чтобы написанный тобой в конструкторе код положит объект в контейнер после вызова всех конструкторов. Конструкторы потомков будут выполнены после этого помещения

                    Ага, при таком раскладе будто ты ложишь "доделанный" объект? Если он доделаный, зачем после AfterConstruction вызывать еще и конструкторы потомков? Он ведь уже доделанный и совершенный ;)
                      Цитата D_KEY @
                      Зачем объекту класть себя в какой-то (глобальный ?) контейнер? Не слишком ли сильная связанность?

                      без понятия. Хотя я так иногда делал, но там это было для отладки, какой то хитрый мемлик был.

                      А вообще я так на наш код посмотрел, есть один товарищ, который активно AfterContruction использует, но там везде можно заменить виртуальным конструктором этот код. А так чтоб по делу, только один случай был, для своего InterfacedObject'a.
                        Цитата --Ins-- @
                        Не можешь. Ты можешь полодить недоделанный объект разве что, ты не можешь гарантировать чтобы написанный тобой в конструкторе код положит объект в контейнер после вызова всех конструкторов. Конструкторы потомков будут выполнены после этого помещения

                        А, вы про это(извините, работа :D ). Ну да, тут фактически в фабрике можно сделать. Но я так и не понял, зачем нужна такая сильная связанность? Юнит-тесты как писать будем? Нужно хотя бы обеспечить возможность передачи псевдоконтейнера.
                        Может нам пора перейти к коду :) ? Или там будет все то же самое, что и раньше?

                        Ты про ссылки-то не хочешь ответить?
                          Цитата KILLER @
                          Зачем для инстанцирования использовать позднее связывание? Нужен объект - создай его. А это получается как? Ну да... я же забыл, у вас конструктор - это же метод Initialize по сути, мало чего общего имеющий с настоящим конструктором, который выделяет память и т.д.


                          Ну все, приехали. Теперь открывай для себя инстанцирующие паттерны - всякие там фабрики и т.д.

                          Добавлено
                          Цитата KILLER @
                          Если он доделаный, зачем после AfterConstruction вызывать еще и конструкторы потомков?


                          Я не знаю что ты там куришь, но после AfterConstruction никакие конструкторы не вызываются

                          Добавлено
                          Цитата Flex Ferrum @
                          Ты уверен? Вот я - нет... Т. е. может быть такая архитектура и будет позволять делать некоторые вещи удобнее, но правильнее она от этого не станет...


                          Определение понятия правильности - в студию

                          Добавлено
                          Цитата D_KEY @
                          Ты про ссылки-то не хочешь ответить?


                          Перепости, плиз, мне неохота искать что именно ты имеешь в виду
                            Цитата --Ins-- @
                            Ну все, приехали. Теперь открывай для себя инстанцирующие паттерны - всякие там фабрики и т.д.

                            Так а причем тут фабрики? Я их для себя открыл еще несколько лет назад. Я спрашивал зачем конструктор нужен виртуальным? В чем его удобность то?

                            Цитата --Ins-- @
                            Я не знаю что ты там куришь, но после AfterConstruction никакие конструкторы не вызываются

                            Ну вот же ты написал:
                            Цитата --Ins-- @
                            ты не можешь гарантировать чтобы написанный тобой в конструкторе код положит объект в контейнер после вызова всех конструкторов. Конструкторы потомков будут выполнены после этого помещения

                            Или ты это писал имея ввиду С++ ? Так если так, ты уточняй о чем речь ведешь. А то же это предложение можно по разному интерпретировать, достаточно поменять интонацию и ударение перенести на другую часть предложения.
                            Сообщение отредактировано: KILLER -
                              Цитата KILLER @
                              Так а причем тут фабрики? Я их для себя открыл еще несколько лет назад. Я спрашивал зачем конструктор нужен виртуальным? В чем его удобность то?


                              Повторяю:
                              Цитата --Ins-- @
                              это встроенная в язык фабрика, которая для инстанцирования использует позднее связывание


                              Цитата KILLER @
                              Или ты это писал имея ввиду С++ ?


                              Ес-но. И не вижу смысло отдельно это уточнять, когда говорю что я смогу, а D_KEY - не сможет. Если бы ты читал прежде чем писать, и непонятков бы не было

                              Добавлено
                              Цитата KILLER @
                              Я их для себя открыл еще несколько лет назад.


                              Непохоже :D Раз задаешь вопрос в духе - зачем позднее связывание, нужен объект - создай :D
                                Цитата --Ins-- @
                                это встроенная в язык фабрика, которая для инстанцирования использует позднее связывание

                                Да, только в настоящей фабрике метод создания объектов никак не связан с конструкторами этих объектов. А в твоей "фабрике", у тебя конструктор выполняет роль создателя производных объектов, путем вызова по сути производных конструкторов, причем тех, о которых он в принципе знать не должен, на этапе создания объекта. Так в чем удобность то такого подхода, ты объяснишь ?

                                Добавлено
                                Цитата --Ins-- @
                                Непохоже :D Раз задаешь вопрос в духе - зачем позднее связывание, нужен объект - создай :D

                                Я задал не такой вопрос, а немного другой. У тебя роль создателя "нужного" класса играет конструктор. Вот я и спрашиваю, зачем этим должен заниматься конструктор? В чем прикол? Чем это лучше? ты же выше написал что:
                                Цитата --Ins-- @
                                А вот пользы от возможности их вызывать можно извлечь много.

                                Я пытаюсь выудить из тебя - что за пользу можно извлечь из этого? А ты мне в фабрики тыкаешь. Так и объясни где польза писать запутанный код ? Фабрика - это вообще паттерн проектирования. А когда нужен паттерн - его берут и юзают. А у тебя это встроено в сам язык, да еще и через метод создания объекта.
                                Сообщение отредактировано: KILLER -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 469 470 [471] 472 473 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.6034 ]   [ 15 queries used ]   [ Generated: 28.07.26, 21:42 GMT ]