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

    ну и что? ему и не нужно знать, если он его не использует, но факт реализации от этого не исчезает.

    Добавлено
    Цитата Adil @
    Боюсь, что код void do_something_with_IB(A a) будет делать что-то не то, что хотелось бы.

    этого (делать не то, что хотелось бы) можно легко достичь и без интерфейсов.

    Добавлено
    Цитата MyNameIsIgor @
    Ну и на кой мужской половой член он мне нужен то тогда? Я не могу писать код, опираясь на него, потому что не могу знать результат работы этого кода. Так что можете этот список методов себе оставить - он совершенно бесполезен.

    вах, как же ты тогда терпишь инкапсуляцию? ведь ты не знаешь, что делает тот или иной метод, как реализован тот или иной класс
      Цитата korvin @
      этого (делать не то, что хотелось бы) можно легко достичь и без интерфейсов.
      Да, но вы то предлагаете, чтобы этого достигал не программист, а компилятор, выбирая shift одного интерфейса при множественном наследовании.

      Добавлено
      Цитата korvin @
      вах, как же ты тогда терпишь инкапсуляцию? ведь ты не знаешь, что делает тот или иной метод, как реализован тот или иной класс
      Не передёргивай. Мы не говорим о том, что нужно знать реализацию. Нужно знать результат. Вы же говорите, что результат одинаков, если сигнатуры совпадают. :huh:
        Цитата MyNameIsIgor @
        ни разу. Не вижу в какой момент вам бы требовалась связная работа именно с файлом. Так что даю вводную: нужна функция, принимающая строку и записывающая её в файл начиная с десятой позиции. Вперде, korvin!

        Вы уж определитесь, что Вам надо, работа с конкретным типом или интерфейсом? но впрочем вот:
        ExpandedWrap disabled
          interface PositionalFile {
              File
              void Seek (position : int)
          }
           
          func (file : File) Seek (position : int) {
              // ...
          }
           
          func (file : PositionalFile) writeStr (pos : int, str : string) {
              file.Open()
              file.Seek(pos)
              file.Write(str)
              file.Close()
          }
          Цитата korvin @
          Вы уж определитесь, что Вам надо, работа с конкретным типом или интерфейсом? но впрочем вот:

          Ну, и ничего страшного, что присутствует предположении о том, что после Open позиция находится в начале? Я как об этом узнал из объявления интерфейса то?
            Цитата MyNameIsIgor @
            "Не знают" и "осознанно не используют" - вещи разные. Уж неужели мне придётся рассказывать о известных сервисах, положивших с прибором на реаляционнуы модель, потому что не подходит к практике?

            зачем переводить стрелки? но как будто эти сервисы взяли и отбалды спроектировали БД, без проектирования?
              Цитата korvin @
              зачем переводить стрелки?

              А зачем меня сравнивать с кем-то там вам известным, чья деятельность вас не устраивает.
              Цитата korvin @
              но как будто эти сервисы взяли и отбалды спроектировали БД, без проектирования?

              Наверняка не от балды. Дело то в том, что по ходу была выкинута самая распространённая модель БД.
                Цитата Adil @
                Не передёргивай. Мы не говорим о том, что нужно знать реализацию. Нужно знать результат.

                окей. есть класс:
                ExpandedWrap disabled
                  class Stream {
                      void Open  ()
                      void Close ()
                      any  Read  ()
                      void Write ()
                  }

                что ты можешь сказать о результате выполнения каждого метода?

                Цитата Adil @
                Вы же говорите, что результат одинаков, если сигнатуры совпадают. :huh:

                нет, не говорю

                Добавлено
                Цитата MyNameIsIgor @
                А зачем меня сравнивать с кем-то там вам известным, чья деятельность вас не устраивает.

                я тебя не сравнивал вообще-то, приводил пример.

                Добавлено
                Цитата MyNameIsIgor @
                Наверняка не от балды. Дело то в том, что по ходу была выкинута самая распространённая модель БД.

                ну и? люди посидели, _подумали_, возможно провели исследования, и решили, что реляционная модель не подходит к их задачам, взяли другую или спроектировали свою, это что, значит, что реляционную модель вообще теперь нигде нельзя использовать? или, что подходящую модели они выбирали/проектировали наобум?
                Сообщение отредактировано: korvin -
                  Цитата korvin @
                  что ты можешь сказать о результате выполнения каждого метода?

                  Прочитав документацию. Я это множество раз повторял. При существующих языках программирования практически всегда есть семантика, не отражённая в коде. Да, есть тенденции её уменьшения, стремление сделать код самодокументируемым. Не надо мне пояснять преимущества этого тренда. Только реально код ещё долго будет неотделим от документации к нему - это надо принять.
                    Цитата MyNameIsIgor @
                    Цитата korvin @
                    что ты можешь сказать о результате выполнения каждого метода?

                    Прочитав документацию.

                    ну так о чем разговор тогда?

                    Добавлено
                    Цитата MyNameIsIgor @
                    Ну, и ничего страшного, что присутствует предположении о том, что после Open позиция находится в начале? Я как об этом узнал из объявления интерфейса то?

                    нет такого предположения, с чего ты взял?
                      Цитата korvin @
                      ну и? люди посидели, _подумали_, возможно провели исследования, и решили, что реляционная модель не подходит к их задачам, взяли другую или спроектировали свою, это что, значит, что реляционную модель вообще теперь нигде нельзя использовать?

                      Да почему нигде то? Я разве это сказал? Я вот как раз привёл пример, где людям понадобилось что-то отличное от популярной теории. И не смотря на то, что и раньше были исследования в области нереляционных хранилищ, бум возник только при их практической надобности. Вот я о чём говорю. Что в столкновении теории и практики теория всегда проигрывает. В том смысле, что изменяется, или возникает другая. Потому нельзя говорить "надо делать так, потому что в учебнике написано". Надо говорить "в учебнике написано, что надо делать так, потому что [список доводов]" И если список доводов нам не подходит, то мы ищем другой учебник. Так понятнее?

                      Добавлено
                      Цитата korvin @
                      ну так о чем разговор тогда?

                      Как я устал... :'( Разговор о том, что существует семантика, не отражённая в имени метода и его сигнатуре.
                      Цитата korvin @
                      нет такого предположения, с чего ты взял?

                      Ах, вы хотите сказать, что Seek у вас ставит позицию не относительно текущей, а по абсолютному номеру? Ну, а как я об этом узнаю из объявления интерфейса? :D
                        Цитата MyNameIsIgor @
                        Как я устал... :'( Разговор о том, что существует семантика, не отражённая в имени метода и его сигнатуре.

                        нуи я показал, что классы точно также не могут дать предположений о семантике, как и интерфейсы, в чем наезд на интерфейсы тогда?

                        Добавлено
                        Цитата MyNameIsIgor @
                        Ах, вы хотите сказать, что Seek у вас ставит позицию не относительно текущей, а по абсолютному номеру?

                        я хочу сказать, что Seek у меня ставит позицию так, как это позволил сделать разработчик класса, с которым я работаю или так, как я захотел, если это мой класс.

                        Цитата MyNameIsIgor @
                        Ну, а как я об этом узнаю из объявления интерфейса? :D

                        а ты и не должен знать, у тебя есть набор объектов разных классов, реализующих Seek, если тебе нужно знать как объекты какого-то класса/классов реализуют тот или иной метод, ты читаешь документацию к этим классам
                          Цитата korvin @
                          что ты можешь сказать о результате выполнения каждого метода?
                          То, что три из них не возвращают результата(или возвращают неописанным способом), а один - некоего произвольного типа. :D

                          P.S. А имя интерфейса является частью сигнатуры его методов? Почему?
                            Цитата MyNameIsIgor @
                            Да почему нигде то? Я разве это сказал? Я вот как раз привёл пример, где людям понадобилось что-то отличное от популярной теории. И не смотря на то, что и раньше были исследования в области нереляционных хранилищ, бум возник только при их практической надобности. Вот я о чём говорю. Что в столкновении теории и практики теория всегда проигрывает. В том смысле, что изменяется, или возникает другая. Потому нельзя говорить "надо делать так, потому что в учебнике написано". Надо говорить "в учебнике написано, что надо делать так, потому что [список доводов]" И если список доводов нам не подходит, то мы ищем другой учебник. Так понятнее?

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

                              Это лол что ли такой? Я в ах... просто! Я же говорил
                              Цитата MyNameIsIgor @
                              Только реально интерфейс требует не только наличие метода с такими то именем и сигнатурой, но ещё и определяет некий контракт, расписанный в документации.

                              и в ответ услышал
                              Цитата korvin @
                              нет, единственный контракт, который создает интерфейс -- именование множества сообщений, которые может обработать объект и всё.

                              Я разве говорил, что классы абсолютно понятны по коду? Что за бред? Я разве наезжал на интерфейсы? Откуда вы это взяли? Я сказал одну простую вещь: одноимённые и совпадающие по сигнатуре требования методов разных интерфейсов нельзя по умолчанию считать одинаковыми, потому что существует недоступная для компилятора семантика. Подобные решения должны приниматься программистом и выражаться явно в коде. Никаких "наездов".
                              Цитата korvin @
                              я хочу сказать, что Seek у меня ставит позицию так, как это позволил сделать разработчик класса, с которым я работаю или так, как я захотел, если это мой класс.

                              Тогда функция не выполняет задание: она не гарантирует, что будет записано именно в заданную позицию. Она делает неизвестно что, опираясь на этот ваш бесполезный списочег методов без семантики. Подобные писульки тупо не нужны.
                              Цитата korvin @
                              а ты и не должен знать, у тебя есть набор объектов разных классов, реализующих Seek, если тебе нужно знать как объекты какого-то класса/классов реализуют тот или иной метод, ты читаешь документацию к этим классам

                              Ага, а ещё знать устройство использующего интерфейс кода, потому что без этого не буду знать, куда пристроить экземпляр имеющегося у меня класса.

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

                              Ну, и? Я разве против? В чём ваш проблема то?
                              Сообщение отредактировано: MyNameIsIgor -
                                Цитата trainer @
                                Цитата korvin @
                                что ты можешь сказать о результате выполнения каждого метода?
                                То, что три из них не возвращают результата(или возвращают неописанным способом), а один - некоего произвольного типа. :D

                                P.S. А имя интерфейса является частью сигнатуры его методов? Почему?

                                то же самое можно сказать из приведенного мной интерфейса =)

                                нет не является, это задача не интерфейсов -- создавать пространства имен

                                Добавлено
                                Цитата MyNameIsIgor @
                                Цитата korvin @
                                нуи я показал, что классы точно также не могут дать предположений о семантике, как и интерфейсы, в чем наезд на интерфейсы тогда?

                                Это лол что ли такой? Я в ах... просто! Я же говорил
                                Цитата MyNameIsIgor @
                                Только реально интерфейс требует не только наличие метода с такими то именем и сигнатурой, но ещё и определяет некий контракт, расписанный в документации.

                                и в ответ услышал
                                Цитата korvin @
                                нет, единственный контракт, который создает интерфейс -- именование множества сообщений, которые может обработать объект и всё.

                                Я разве говорил, что классы абсолютно понятны по коду? Что за бред? Я разве наезжал на интерфейсы? Откуда вы это взяли? Я сказал одну простую вещь: одноимённые и совпадающие по сигнатуре требования методов разных интерфейсов нельзя по умолчанию считать одинаковыми, потому что существует недоступная для компилятора семантика. Подобные решения должны приниматься программистом и выражаться явно в коде. Никаких "наездов".

                                а я Вам написал
                                Цитата korvin @
                                единственный контракт, который создает интерфейс -- именование множества сообщений, которые может обработать объект и всё.

                                и никаких других предположений о семантике, только имя метода и его тип, всю остальную семантику создают классы

                                Добавлено
                                Цитата MyNameIsIgor @
                                Тогда функция не выполняет задание: она не гарантирует, что будет записано именно в заданную позицию. Она делает неизвестно что, опираясь на этот ваш бесполезный списочег методов без семантики. Подобные писульки тупо не нужны.

                                гарантирует. согласно логике работы объектов конкретного класса. не нравится -- опирайтесь на некоторый абстрактный класс File, только не надо потом ругаться, если кто-то в потомке переопределит метод Seek и он будет делать "не то, что Вам хотелось", а приведение потомка к предку испортит логику работы потомка

                                Добавлено
                                Цитата MyNameIsIgor @
                                Ну, и? Я разве против? В чём ваш проблема то?

                                моя? у меня нет проблемы =/
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 158 159 [160] 161 162 ...  494 495


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