Проблему со статичностью цепочек наследования и статичной инкапсуляцией. А что, если Объект моделируется и ему нужна динамичная структура? Ручное переписывание не позволит такому Объекту развиваться быстро и естественно.
Стандартному ООП не хватает гибкости, которым обладает человеческое мышление. Структуры всех Объектов статичны, наследственные связи не меняются без изменения кода. Это серьезный недостаток.
ООП инвариантен и является естественным свойством Сознания, но его реализация может иметь недостатки.
А в чем проблема со множественным наследованием и связями между объектами?
По третьему пункту, Петр, ей богу от апологета прописывания всего на глобальном уровне в массивах, не ожидал. В полях класса у Вас не переменные, а контейнеры, соответсвенно и добовлять/убавлять можете в runtime, про сопутствующие тормоза Вам уже выше писали. Кстати, при правильном написании тормоза могут быть вполне приемлимыми.
Vladimir Simakov: По третьему пункту, Петр, ей богу от апологета прописывания всего на глобальном уровне в массивах, не ожидал. В полях класса у Вас не переменные, а контейнеры, соответсвенно и добовлять/убавлять можете в runtime, про сопутствующие тормоза Вам уже выше писали. Кстати, при правильном написании тормоза могут быть вполне приемлимыми.
Да, я понял, что свойства могут добавляться Объектам, но без обновления взаимосвязей с другими свойствами и объектами, такое добавление бессмысленно. Структурно, каждый Объект интегрирован в среду других объектов, и их взаимосвязи сложны и запутанны. Стандартный ООП позволяет менять объектные связи переписыванием кода и перекомпиляцией. А добавление новых свойств "на лету", не меняет структуры объектов и система сохраняет целостность, либо ломается. Нужно, чтобы сама система менялась "на лету".
ООП - это способность человека связывать информацию в иерархическую структуру с распределением "слоями", от общих к частным. В этом заключается "инвариантность" ООП. Реализация ООП в мозге человека и в компьютерной программе - разная.
Реter Konow: Да, я понял, что свойства могут добавляться Объектам, но без обновления взаимосвязей с другими свойствами и объектами, такое добавление бессмысленно. Структурно, каждый Объект интегрирован в среду других объектов, и их взаимосвязи сложны и запутанны. Стандартный ООП позволяет менять объектные связи переписыванием кода и перекомпиляцией. А добавление новых свойств "на лету", не меняет структуры объектов и система сохраняет целостность, либо ломается. Нужно, чтобы сама система менялась "на лету".
Есть оператор new. Этот оператор позволяет создавать новый объект во время выполнения программы.
Есть массивы указателей на объекты. Эти массивы позволяют положить в них указатель на любой объект.
Массивы указателей сами являются объектами.
А теперь подумайте, и ответьте - возможно, или нет, на лету добавлять объектам свойства?
Предел есть у всего.
Я нашел проблему стандартного ООП:
ООП инвариантен и является естественным свойством Сознания, но его реализация может иметь недостатки.
Предел есть у всего.
Я нашел проблему стандартного ООП:
ООП инвариантен и является естественным свойством Сознания, но его реализация может иметь недостатки.
____________________________________________________________________________________
Чему он инвариантен?
Может лучше определиться с ИИ с точки зрения что мы хотим от него получить?
Да, Вы правы.
Я хочу научить компьютерную систему моделировать Объекты.
Технически, Мышление - это отражение и моделирование объектов и взаимосвязей Реальности.
ИИ должен повторять работу Интеллекта, который исследует объекты Реальности, разбирает получаемые от них данные и воспроизводит их модели внутри себя.
По третьему пункту, Петр, ей богу от апологета прописывания всего на глобальном уровне в массивах, не ожидал. В полях класса у Вас не переменные, а контейнеры, соответсвенно и добовлять/убавлять можете в runtime, про сопутствующие тормоза Вам уже выше писали. Кстати, при правильном написании тормоза могут быть вполне приемлимыми.
Петр, это наверно что-то из области расшифровки генетического кода и формирования объекта по этому коду?
____________________________________________________________________________________
Чему он инвариантен?
ООП - это способность человека связывать информацию в иерархическую структуру с распределением "слоями", от общих к частным. В этом заключается "инвариантность" ООП. Реализация ООП в мозге человека и в компьютерной программе - разная.
Петр, это наверно что-то из области расшифровки генетического кода и формирования объекта по этому коду?
Да, я понял, что свойства могут добавляться Объектам, но без обновления взаимосвязей с другими свойствами и объектами, такое добавление бессмысленно. Структурно, каждый Объект интегрирован в среду других объектов, и их взаимосвязи сложны и запутанны. Стандартный ООП позволяет менять объектные связи переписыванием кода и перекомпиляцией. А добавление новых свойств "на лету", не меняет структуры объектов и система сохраняет целостность, либо ломается. Нужно, чтобы сама система менялась "на лету".
Есть оператор new. Этот оператор позволяет создавать новый объект во время выполнения программы.
Есть массивы указателей на объекты. Эти массивы позволяют положить в них указатель на любой объект.
Массивы указателей сами являются объектами.
А теперь подумайте, и ответьте - возможно, или нет, на лету добавлять объектам свойства?