На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (21) « Первая ... 5 6 [7] 8 9 ...  20 21  ( Перейти к последнему сообщению )  
> ООП - в топку!
    Цитата Wound @
    Цитата D_KEY @
    А другие "эксперты" согласятся с тобой?

    А что есть какой то другой способ определить ОО эта система или нет?

    Так я про это и говорю. Нет нормального способа.

    Цитата
    Цитата D_KEY @
    Разные люди разные принципы выделяют. И все эти принципы расплывчаты. Кто-то скажет, что система им удовлетворяет, а кто-то скажет, что нет.

    Приводи примеры.

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

      Смотри. В процедурном подходе первичен алгоритм. Ты придумываешь его шаг за шагом параллельно выбирая как и где ты будешь хранить промежуточные результаты. И у тебя появляется функция чтения конфигурации, которая просто читает файл и просто заполняет структуру с открытыми полями. Никакой инкапсуляции, абстракции и прочего. Имя файла на вход, структура на выход. Все, идём по алгоритму дальше.
      В ОО-подходе у тебя взаимодействующие абстракции. У тебя, скажем, есть абстракция "конфигурация", у которой интерфейс иерархического хранилища. Есть фабрика, которая создаёт экземпляр этой абстракции. Конкретный экземпляр. На вход - имя файла (или поток, или абстракция DataSource), на выходе - интерфейс. Дальше, у тебя есть абстракция "источник пользовательского ввода". Есть абстракция "Парсер пользовательского ввода". Ты передашь в парсер интерфейс конфигуратора. У тебя есть абстракция "Процессор пользовательского ввода", который склеивает всё вместе. И так далее. И алгоритмическая часть уже будет иной: создать объекты и обеспечить их совместную работу для решения финальной задачи, а не чёткое описание алгоритма шаг за шагом.
      Такая вот разница между применением процедурного подхода и ОО. В первом случае чёткий алгоритм. Во втором - набор взаимодействующих абстракций. Но оба решают одну задачу.
      Сообщение отредактировано: Flex Ferrum -
        Цитата D_KEY @
        Так я про это и говорю. Нет нормального способа.

        А чем тебя не устраивает тот, что на вики, я не понимаю? Чем этот способ не нормальный?

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

        Это все одно и то же, просто сказано либо очень абстрактно либо конкретизировано. В вики например описывают 4 основных принципа "абстрагирование, инкапсуляция, наследование, полиморфизм".
        В более ранних интерпетациях выделяли три последних принципа. Это все логично, ибо все развивается, потом появились конкретные методики, которые еще больше конкретизируют эти принципы своими принципами(тот же SOLID), со временем возможно еще что то добавится. Так вот к чему это все, а к тому что технологии развиваются, и конкретизируются определения различных систем и парадигм. Что то конкретизируется, что то отсеивается и т.д. На сегодняшний день можешь измерять ООпшность системы путем применения этих 4 принципов. Раньше возможно хватало 3 принципов, а еще раньше возможно хватало принципа "все есть объекты, которые обмениваются между собой сообщениями".

        Вон даже планет в солнечной системе стало меньше, за последние 10 лет, а ты тут про какую то расплывчатость формулировок.

        Добавлено
        Цитата D_KEY @
        Пример систем. Хм. Ну вот скажи, STL - это ООП или нет?

        Нет.
        Сообщение отредактировано: Wound -
          Flex, к тебе те же вопросы :)
          Цитата D_KEY @
          Ну вот скажи, STL - это ООП или нет?

          Сможешь посмотреть на систему и сказать, ОО она или нет? А другие "эксперты" согласятся с тобой?
            Цитата D_KEY @
            Flex, к тебе те же вопросы :)
            Цитата D_KEY @
            Ну вот скажи, STL - это ООП или нет?

            Сможешь посмотреть на систему и сказать, ОО она или нет? А другие "эксперты" согласятся с тобой?

            STL только лишь в малой части ОО. В реализации стримов. Всё. Но к чему эти вопросы? Скажи, ты опять не понял разницу между ОО- и процелурным подходом?
              Цитата Flex Ferrum @
              Смотри. В процедурном подходе первичен алгоритм. Ты придумываешь его шаг за шагом параллельно выбирая как и где ты будешь хранить промежуточные результаты. И у тебя появляется функция чтения конфигурации, которая просто читает файл и просто заполняет структуру с открытыми полями. Никакой инкапсуляции, абстракции и прочего. Имя файла на вход, структура на выход. Все, идём по алгоритму дальше.

              Ок. Допустим. Твой взгляд на процедурное программирование я понял. Хотя STL, очевидно, делали не так ;)

              Цитата
              У тебя, скажем, есть абстракция "конфигурация", у которой интерфейс иерархического хранилища.

              Мне ее еще надо придумать. Это происходит от того, что нужно сделать. В разных системах абстракции для "конфигурации" будут разными.
              Исходя из чего придумывается интерфейсы абстракций?

              Цитата
              Есть фабрика, которая создаёт экземпляр этой абстракции.

              В "процедурном" подходе у тебя точно так же могут выбираться разные реализации по каким-то параметрам.

              Цитата
              на выходе - интерфейс.

              В моем примере есть идентификатор "файла", в который ты можешь писать, из которого ты можешь читать и пр. При этом это может быть и файл на диске и сокет и пайпа и хз что еще. Это процедурный стиль. Так проектировали еще до ООП.

              Цитата
              И алгоритмическая часть уже будет иной: создать объекты и обеспечить их совместную работу для решения финальной задачи, а не чёткое описание алгоритма шаг за шагом.

              Так это и есть алгоритм шаг за шагом.

              Добавлено
              Цитата Flex Ferrum @
              Скажи, ты опять не понял разницу между ОО- и процелурным подходом?

              Твою точку зрения я понял. Но ты ее не обосновываешь, а постулируешь :)

              Добавлено
              Цитата Wound @
              Это все одно и то же, просто сказано либо очень абстрактно либо конкретизировано.

              Нет, это не одно и то же. И именно поэтому Алан Кей отказывал C++ в праве называться ОО-языком. Это его частное мнение. Определения-то четкого нет. Я уже не говорю формальное.

              Цитата
              Цитата D_KEY @
              Пример систем. Хм. Ну вот скажи, STL - это ООП или нет?

              Нет.

              А что это? :)
                Цитата D_KEY @
                Мне ее еще надо придумать. Это происходит от того, что нужно сделать. В разных системах абстракции для "конфигурации" будут разными.
                Исходя из чего придумывается интерфейсы абстракций?

                Сами абстракции и их интерфейсы продумываются исходя из потребностей задачи. Исходной задачи, а не её алгоритм чешского представления.

                Цитата D_KEY @
                Так это и есть алгоритм шаг за шагом.

                Нет. Если ты попробуешь реализовать первое и второе, то итоговое представление алгоритма у тебя будет разным. Во втором случае алгоритм будет сильно "рамазан" по коду.
                  Цитата Flex Ferrum @
                  Сами абстракции и их интерфейсы продумываются исходя из потребностей задачи. Исходной задачи, а не её алгоритм чешского представления.

                  Так а с чего ты взял, что до ООП люди все строили от алгоритмического представления?

                  Цитата
                  Нет. Если ты попробуешь реализовать первое и второе, то итоговое представление алгоритма у тебя будет разным. Во втором случае алгоритм будет сильно "рамазан" по коду.

                  И что? От этого там не будет "процедур"? И что мешало в процедурном подходе так же декомпозировать?
                    Цитата D_KEY @
                    Нет, это не одно и то же. И именно поэтому Алан Кей отказывал C++ в праве называться ОО-языком. Это его частное мнение. Определения-то четкого нет. Я уже не говорю формальное.

                    Ну а причем тут его частное мнение к общепризнанному мнению? Я уверен существуют ученные с мировым именем, которые не признают Теорию Большого Взрыва. Но она то не перестает быть от этого их частного мнения, основной теорией появления вселенной и всего остального.

                    Цитата D_KEY @
                    А что это? :)

                    Библиотека(набор) стандартных алгоритмов и классов дабы не писать велосипеды в каждой программе, облегчающая жизнь.
                    Сообщение отредактировано: Wound -
                      Цитата D_KEY @
                      И что? От этого там не будет "процедур"? И что мешало в процедурном подходе так же декомпозировать

                      Ничего. Кроме того, что это будет уже ОО- подход. :)

                      Цитата D_KEY @
                      Так а с чего ты взял, что до ООП люди все строили от алгоритмического представления?

                      Эм... Вроде такова история индустрии. Сначала компьютеры применяли для решения чётко формализованных алгоритмических задач. Не? Это потом, с увеличением мощностей и появлением ЯВУ начали говорить о более сложных/альтернативных подходах.
                      Сообщение отредактировано: Flex Ferrum -
                        D_KEY, если я (очередной раз) назову <stdio.h> имеющим объектную архитектуру, тебя это устроит?
                          Цитата Qraizer @
                          D_KEY, если я (очередной раз) назову <stdio.h> имеющим объектную архитектуру, тебя это устроит?

                          Так замечательно. Осталось сформулировать четкие критерии :)

                          Добавлено
                          Цитата Flex Ferrum @
                          Цитата Qraizer @
                          D_KEY, если я (очередной раз) назову <stdio.h> имеющим объектную архитектуру, тебя это устроит?

                          И будешь прав. :)

                          Вот тут важный момент. Почему ты пишешь не "я тоже так считаю", а "будешь прав", как будто есть четкие критерии?

                          Добавлено
                          Цитата Flex Ferrum @
                          Цитата D_KEY @
                          Так а с чего ты взял, что до ООП люди все строили от алгоритмического представления?

                          Эм... Вроде такова история индустрии.

                          Когда появился stdio.h?
                          Сообщение отредактировано: D_KEY -
                            Цитата Qraizer @
                            D_KEY, если я (очередной раз) назову <stdio.h> имеющим объектную архитектуру, тебя это устроит?

                            И будешь прав. :)
                              Цитата D_KEY @
                              Так замечательно. Осталось сформулировать четкие критерии
                              Т.е. ты не возражаешь против этого тезиса. Тогда следующий вопрос: когда он писался, кем-то, когда-то... он вообще думал о том, чтобы написать его в стиле ООП?
                                D_KEY, Вообще да, если начать философствовать, то конечно ОО систему можно наковырять(разглядеть) и в сишной функции записи write(FILE*,...). Но какое это имеет отношение к реальным системам?
                                Сообщение отредактировано: Wound -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (21) « Первая ... 5 6 [7] 8 9 ...  20 21


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0929 ]   [ 15 queries used ]   [ Generated: 5.05.24, 00:58 GMT ]