Вопрос знатокам ООП. - страница 47

 
Может лучше определиться с ИИ с точки зрения что мы хотим от него получить?
Это уже на один маленький шаг ближе к реализации.
Может не обязательно делать так как в естественном интеллекте, может достаточно опираться на внешние проявления его...
 
Реter Konow:

Предел есть у всего.

Я нашел проблему стандартного ООП:

  • Во множественном наследовании. 
  • В поперечных связях между классами. 
  • Проблему со статичностью цепочек наследования и статичной инкапсуляцией. А что, если Объект моделируется и ему нужна динамичная структура? Ручное переписывание не позволит такому Объекту развиваться быстро и естественно. 

Стандартному ООП не хватает гибкости, которым обладает человеческое мышление. Структуры всех Объектов статичны, наследственные связи не меняются без изменения кода. Это серьезный недостаток.


ООП инвариантен и является естественным свойством Сознания, но его реализация может иметь недостатки.

А в чем проблема со множественным наследованием и связями между объектами?
 
По третьему пункту, Петр, ей богу от апологета прописывания всего на глобальном уровне в массивах, не ожидал. В полях класса у Вас не переменные, а контейнеры, соответсвенно и добовлять/убавлять можете в runtime, про сопутствующие тормоза Вам уже выше писали. Кстати, при правильном  написании тормоза могут быть вполне приемлимыми.
 
Реter Konow:

Предел есть у всего.

Я нашел проблему стандартного ООП:

  • Во множественном наследовании. 
  • В поперечных связях между классами.


ООП инвариантен и является естественным свойством Сознания, но его реализация может иметь недостатки.

____________________________________________________________________________________

Чему он инвариантен? 

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

Да, Вы правы.

Я хочу научить компьютерную систему моделировать Объекты.

Технически, Мышление - это отражение и моделирование объектов и взаимосвязей Реальности.

ИИ должен повторять работу Интеллекта, который исследует объекты Реальности, разбирает получаемые от них данные и воспроизводит их модели внутри себя.

 
Vladimir Simakov:
По третьему пункту, Петр, ей богу от апологета прописывания всего на глобальном уровне в массивах, не ожидал. В полях класса у Вас не переменные, а контейнеры, соответсвенно и добовлять/убавлять можете в runtime, про сопутствующие тормоза Вам уже выше писали. Кстати, при правильном  написании тормоза могут быть вполне приемлимыми.
Да, я понял, что свойства могут добавляться Объектам, но без обновления взаимосвязей с другими свойствами и объектами, такое добавление бессмысленно. Структурно, каждый Объект интегрирован в среду других объектов, и их взаимосвязи сложны и запутанны. Стандартный ООП позволяет менять объектные связи переписыванием кода и перекомпиляцией. А добавление новых свойств "на лету", не меняет структуры объектов и система сохраняет целостность, либо ломается. Нужно, чтобы сама система менялась "на лету".
 

Петр, это наверно что-то из области расшифровки генетического кода и формирования объекта по этому коду?  

 
Алексей Тарабанов

____________________________________________________________________________________

Чему он инвариантен? 


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

 
Dmitry Fedoseev:

Петр, это наверно что-то из области расшифровки генетического кода и формирования объекта по этому коду?  

Возможно. Сейчас сложно предположить все направления практического применения. Просто хочу сделать шаг вперед.
 
Реter Konow:
Да, я понял, что свойства могут добавляться Объектам, но без обновления взаимосвязей с другими свойствами и объектами, такое добавление бессмысленно. Структурно, каждый Объект интегрирован в среду других объектов, и их взаимосвязи сложны и запутанны. Стандартный ООП позволяет менять объектные связи переписыванием кода и перекомпиляцией. А добавление новых свойств "на лету", не меняет структуры объектов и система сохраняет целостность, либо ломается. Нужно, чтобы сама система менялась "на лету".

Есть оператор new. Этот оператор позволяет создавать новый объект во время выполнения программы.

Есть массивы указателей на объекты. Эти массивы позволяют положить в них указатель на любой объект.

Массивы указателей сами являются объектами.

А теперь подумайте, и ответьте - возможно, или нет, на лету добавлять объектам свойства?