Une question pour les experts de la POO. - page 48

 
Artyom Trishkin:

Il y a un nouvel opérateur. Cet opérateur vous permet de créer un nouvel objet au moment de l'exécution.

Il existe des tableaux de pointeurs vers des objets. Ces tableaux vous permettent d'y placer un pointeur vers n'importe quel objet.

Les tableaux de pointeurs sont eux-mêmes des objets.

Maintenant, réfléchissez et répondez : est-il possible ou non d'ajouter des propriétés aux objets à la volée ?

Lisez attentivement mon message. J'ai immédiatement accepté la possibilité d'ajouter de nouvelles propriétés, mais j'ai ensuite reconnu l'inutilité de le faire. De nouvelles propriétés "à la volée" - ne signifie pas la mise à jour de la structure de l'objet. Ses relations héréditaires, et donc - tout le système restera inchangé. Par conséquent, l'Objet acquerra une propriété qui sera inutile, car ilne sera pas possible d'intégrer cette propriété sans construire de nouveaux algorithmes fonctionnant avec elle .
 
Реter Konow:
Lisez attentivement mon message. J'étais d'accord avec la possibilité d'ajouter de nouvelles propriétés tout de suite, mais j'ai ensuite reconnu que cela n'avait pas de sens. De nouvelles propriétés "à la volée", - ne signifie pas la mise à jour de la structure de l'objet. Ses relations héréditaires, et donc - tout le système restera inchangé. Par conséquent, l'Objet acquerra une propriété qui sera inutile, car il ne sera pas possible d'intégrer cette propriété sans construire de nouveaux algorithmes fonctionnant avec elle .

Il existe un objet de propriété de base qui est doté d'un gestionnaire d'événements. Cet objet-propriété exécute la fonction primitive de comparaison de son état avec son état précédent et conserve le résultat de la comparaison - plus/ moins/pas de changement. Il le fait continuellement pendant sa vie.

Toute propriété d'un autre objet est cet objet-propriété. Et l'autre objet lui-même est l'héritier de l'objet-propriété.

Ainsi, tout objet vit constamment en vérifiant son état, et l'état de ses propriétés, et celles-ci vérifient à leur tour l'état de toutes ses propriétés (si elles sont elles-mêmes des descendantes de l'objet-propriété).

Chaque propriété a un identifiant unique.

Ainsi, chaque objet sait quelle propriété a été modifiée.

Chaque objet possède un gestionnaire qui réagit lorsque les propriétés changent dans un sens ou dans l'autre. C'est ici que le "créateur" doit préciser comment l'objet réagit à un changement de propriété.

Et vous voulez qu'un programme "mute" de lui-même pour aller là où il doit aller sans votre participation ? Créer de nouveaux gestionnaires de changement de propriété par lui-même ?

Eh bien, voici un indice sur l'ADN. Elle ne se contente pas de décrire un objet et ses propriétés. Elle code également son comportement. Donc, en substance, vous devez coder le comportement des propriétés lorsque certains facteurs externes changent. Commencez modestement et passez progressivement à des relations plus complexes. Apprenez tout sur l'ADN, et commencez à créer votre propre code génétique pourdécrire des objets. Chaque objet a son propre fil. J'ai peur qu'il n'y ait pas assez de vie pour surpasser le Créateur.
 

Il était une fois un jeu d'ordinateur très cool : Snake Fights. Vous deviez programmer un serpent, mais la méthode de programmation était si bizarre qu'il n'était pas évident de savoir comment il se comporterait. C'était un divertissement assez amusant.

Quelqu'un y a-t-il joué ?

 
Dmitry Fedoseev:

Il était une fois un jeu d'ordinateur très cool : Snake Fights. Vous deviez programmer un serpent, mais la méthode de programmation était si bizarre qu'il n'était pas évident de savoir comment il se comporterait. C'était un divertissement assez amusant.

Quelqu'un y a-t-il joué ?

J'en ai programmé un pour Spectrum en assembleur. Au début, j'ai créé des cellules qui pouvaient interagir avec elles-mêmes et avec leur environnement, et qui pouvaient se reproduire. Et puis j'ai décidé de faire des combats entre deux créatures - chacun des deux utilisateurs pouvait entrer le code comportemental de sa créature, puis regarder les deux créatures s'emparer du territoire et de l'autre.

C'était drôle.

 
Artyom Trishkin:

Il existe un objet de propriété de base qui possède un gestionnaire d'événements. Cet objet-propriété exécute la fonction primitive de comparaison de son état avec son état précédent et enregistre le résultat de la comparaison - plus/ moins/pas de changement. Il le fait continuellement au cours de sa vie.

Toute propriété d'un autre objet est cet objet-propriété. Et l'autre objet lui-même est l'héritier de l'objet-propriété.

Ainsi, tout objet vit constamment en vérifiant son état, et l'état de ses propriétés, et celles-ci vérifient à leur tour l'état de toutes ses propriétés (si elles sont elles-mêmes des descendantes de l'objet-propriété).

Chaque propriété a un identifiant unique.

Ainsi, chaque objet sait quelle propriété a été modifiée.

Chaque objet possède un gestionnaire qui réagit lorsque les propriétés changent dans un sens ou dans l'autre. C'est là que le "créateur" doit préciser comment l'objet réagit à un changement de propriété.

Et vous voulez qu'un programme "mute" de lui-même pour aller là où il doit aller sans votre participation ? Créer de nouveaux gestionnaires de changement de propriété par lui-même ?

Vous avez décrit l'ajout d'une nouvelle variable dans un bloc d'algorithmes, où un gestionnaire "universel" contrôle la valeur de la variable et ce qui lui arrive. Le gestionnaire ne traite pas la valeur de la propriété par lui-même. Il n'effectue son changement qu'"à l'invite" des algorithmes et corrige cet événement.

Les algorithmes eux-mêmes mettent en œuvre l'idée de savoir comment les propriétés déterminent exactement le fonctionnement de l'objet. Une nouvelle propriété, ce sont de nouveaux algorithmes décrivant un nouveau comportement (relation entre les événements et les valeurs des paramètres) et ils ne peuvent pas être réalisés "à la volée", de manière standard.

 
Artyom Trishkin:

...

Eh bien, voici un indice sur l'ADN. Elle ne se contente pas de décrire un objet et ses propriétés. Elle code également son comportement. Donc, en substance, vous devez coder le comportement des propriétés lorsque certains facteurs externes changent. Commencez petit à petit et progressez vers des interrelations plus complexes. Apprenez tout sur l'ADN et commencez à créer votre propre code génétique pour décrire des objets . Chaque objet a son propre fil. J'ai peur qu'il n'y ait pas assez de vie pour surpasser le Créateur.
Vous ne pouvez pas battre ça. Vous pouvez essayer de créer une ombre fondue, mais cela en vaut la peine).
 
Реter Konow:

Vous avez décrit l'ajout d'une nouvelle variable à un bloc d'algorithmes, où un gestionnaire "universel" contrôle sa valeur et les événements qui lui arrivent. Le gestionnaire ne contrôle pas la valeur de la propriété elle-même. Il n'effectue son changement qu'"à l'invite" des algorithmes et corrige cet événement.

Les algorithmes eux-mêmes mettent en œuvre l'idée de savoir comment les propriétés déterminent exactement le fonctionnement de l'objet. Une nouvelle propriété, ce sont de nouveaux algorithmes décrivant un nouveau comportement (relation entre les événements et les valeurs des paramètres) et qui ne peuvent pas être réalisés "à la volée", de manière standard.

La valeur d'un bien est "contrôlée" par l'environnement extérieur. Chaque objet de propriété est doté de la capacité de vérifier cette propriété et de stocker le résultat de la vérification.

Un objet entier peut voir les valeurs et les états de toutes ses propriétés. Y compris les propriétés nouvellement nées.

Mais la façon dont il doit réagir aux changements de ses propriétés est inscrite dans sa chaîne génétique.

 
Mince alors, Peter est devenu un véritable gourou de la POO, comme ça, jonglant avec des bêtises verbeuses et intelligentes dans sa tête et sur le forum. Bravo, je ne pensais pas que quelque chose pourrait éclipser le sentiment d'exaltation de la fileuse, mais c'est bel et bien arrivé.
 
Vict:
Mince alors, Peter est devenu un véritable gourou de la POO, comme ça, jonglant avec des bêtises verbeuses et intelligentes dans sa tête et sur le forum. Bravo, je ne pensais pas que quelque chose pourrait éclipser le sentiment d'exaltation de la fileuse, mais c'est bel et bien arrivé.
Le fait d'être capable de construire des modèles abstraits des concepts d'autres personnes, de les trier sans entrer dans les détails, d'extrapoler et de créer des symbioses avec mes propres concepts. Facile.)
 
Artyom Trishkin:

La valeur du bien est "gérée" par l'environnement extérieur. Chaque objet de propriété a la possibilité de vérifier cette propriété et de stocker le résultat de la vérification.

L'objet entier a la possibilité de voir les valeurs et les états de toutes ses propriétés. Y compris les propriétés nouvellement créées.

Mais la façon dont il doit réagir aux changements de ses propriétés est inscrite dans sa chaîne génétique.

Je ne m'attendais pas à ce que tu comprennes si bien la structure du sujet. En d'autres termes, mes pensées sont parallèles, bien qu'il y ait quelque chose que je ne vous dis pas dans ces questions. C'est encore un peu tôt.