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

 
Artyom Trishkin:

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

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

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

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

Прочтите внимательно мой пост. Я сразу согласился с возможностью добавления новых свойств, но потом признал бессмысленность этого. Новые свойства "на лету", - не означают обновление структуры Объекта. Его наследственные связи, а следовательно - вся система останутся неизменными. Следовательно - Объект обретет свойство, которое будет бесполезно, ведь не будет интеграции этого свойства без построения новых алгоритмов с ним работающих.  
 
Реter Konow:
Прочтите внимательно мой пост. Я сразу согласился с возможностью добавления новых свойств, но потом признал бессмысленность этого. Новые свойства "на лету", - не означают обновление структуры Объекта. Его наследственные связи, а следовательно - вся система останутся неизменными. Следовательно - Объект обретет свойство, которое будет бесполезно, ведь не будет интеграции этого свойства без построения новых алгоритмов с ним работающих.  

Есть некий базовый объект свойства, который наделён обработчиком событий. Этот объект-свойство выполняет примитивную функцию сравнения своего состояния с его прошлым состоянием и хранит результат сравнения - больше/меньше/не изменилось. Делает это постоянно за время своей жизни.

Любое свойство любого иного объекта - это тот самый объект-свойство. И сам иной объект - наследник объекта-свойство.

Таким образом любой объект постоянно живёт тем, что проверяет своё состояние, и состояние своих свойств, а те в свою очередь - состояние всех своих свойств (если они сами являются наследниками объекта-свойство)

Каждое свойство имеет уникальный идентификатор.

Таким образом каждый объект знает какое именно свойство изменилось.

У каждого объекта-свойства есть обработчик, реагирующий на изменение свойства в ту, или иную сторону. И вот в нём-то и нужно "создателю" прописать как объект реагирует на смену свойства.

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

Ну вот вам намекнули на ДНК. В нём прописано не просто описание объекта и его свойств. В нём же закодировано и его поведение. Т.е., по сути-то вам нужно заниматься кодированием поведения свойств при изменении неких внешних факторов. И начинать с малого, постепенно продвигаясь к более сложным взаимосвязям. Изучите всё о ДНК, и начинайте создавать свой генетический код для описания объектов. У каждого объекта - своя цепочка. Боюсь, жизни не хватит переплюнуть Создателя.
 

Давным-давно была игра компьютерная, очень прикольная - Змеиные Бои. Там змею надо программировать, но метод программирования такой странный, что не очевидно, как она будет себя вести. Довольно забавное было развлечение.

А кто-нибудь играл в нее?

 
Dmitry Fedoseev:

Давным-давно была игра компьютерная, очень прикольная - Змеиные Бои. Там змею надо программировать, но метод программирования такой странный, что не очевидно, как она будет себя вести. Довольно забавное было развлечение.

А кто-нибудь играл в нее?

Я такую программировал для "спектрум" на ассемблере. Правда не точно такую, а сначала делал клетки, которые могли взаимодействовать с собою, с внешней средой, и сами могли размножаться. А потом решил сделать бои двух созданий - каждый из двух пользователей мог вводить поведенческий код своего создания, а потом наблюдать как два создания захватывают территорию и друг друга.

Смешно было.

 
Artyom Trishkin:

Есть некий базовый объект свойства, который наделён обработчиком событий. Этот объект-свойство выполняет примитивную функцию сравнения своего состояния с его прошлым состоянием и хранит результат сравнения - больше/меньше/не изменилось. Делает это постоянно за время своей жизни.

Любое свойство любого иного объекта - это тот самый объект-свойство. И сам иной объект - наследник объекта-свойство.

Таким образом любой объект постоянно живёт тем, что проверяет своё состояние, и состояние своих свойств, а те в свою очередь - состояние всех своих свойств (если они сами являются наследниками объекта-свойство)

Каждое свойство имеет уникальный идентификатор.

Таким образом каждый объект знает какое именно свойство изменилось.

У каждого объекта-свойства есть обработчик, реагирующий на изменение свойства в ту, или иную сторону. И вот в нём-то и нужно "создателю" прописать как объект реагирует на смену свойства.

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

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

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

 
Artyom Trishkin:

...

Ну вот вам намекнули на ДНК. В нём прописано не просто описание объекта и его свойств. В нём же закодировано и его поведение. Т.е., по сути-то вам нужно заниматься кодированием поведения свойств при изменении неких внешних факторов. И начинать с малого, постепенно продвигаясь к более сложным взаимосвязям. Изучите всё о ДНК, и начинайте создавать свой генетический код для описания объектов. У каждого объекта - своя цепочка. Боюсь, жизни не хватит переплюнуть Создателя.
Переплюнуть невозможно. Можно попытаться создать блеклую тень, но она того стоит.))
 
Реter Konow:

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

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

Значением свойства "управляет" внешняя среда. Каждый объект-свойство наделён возможностью проверки этого свойства и хранения результата проверки.

Целый объект имеет возможность видеть значения и состояния всех своих свойств. В том числе и заново рождённых.

А вот как он должен реагировать на изменения своих свойств - это записано в его генетической цепочке.

 
О дела, Пётр стал целым гуру ООП, вот так просто, жонглирую многословными, умными портянками в голове и на форуме. Браво, не думал, что что-то способно затмить чувство восторга от спиннера, но таки случилось, чёрт возьми.
 
Vict:
О дела, Пётр стал целым гуру ООП, вот так просто, жонглирую многословными, умными портянками в голове и на форуме. Браво, не думал, что что-то способно затмить чувство восторга от спиннера, но таки случилось, чёрт возьми.
Просто, умею строить абстрактные модели чужих концепций, разбираться в них не вникая в детали, экстраполировать и создавать симбиозы со своими концепциям. Легко.))
 
Artyom Trishkin:

Значением свойства "управляет" внешняя среда. Каждый объект-свойство наделён возможностью проверки этого свойства и хранения результата проверки.

Целый объект имеет возможность видеть значения и состояния всех своих свойств. В том числе и заново рождённых.

А вот как он должен реагировать на изменения своих свойств - это записано в его генетической цепочке.

Не ожидал, что Вы так хорошо понимаете структуру Объекта. В иных словах, мои мысли параллельны, хотя кое что, я недоговариваю в этих вопросах. Еще рано.