|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 649 ![]() |
bonjour à tous. Merci de me lire.
Dans le cadre de recherches sur le développement de l'intelligence artificielle, je souhaite écrire un programme pour manipulera des objets et des fonctions pour tous les types Ada. Je souhaite donc écrire un bibliothèque pour créer des objets de tous les types qui doivent tous être stocké dans un même gestionnaire de données. Je voudrais savoir s'il vous plaît : Si c'est possible à votre avis ? Si ce que j'ai commencé à faire est viable ? est-ce pas trop mal organisé ? Comment faire mieux ? C'est la première fois que je programme orienté objet, j'aurais voulus savoir si pour faire un gestionnaire de données hétérogènes, je vais pas être embêté quelque part ? Voici ce que j'ai fait... j'ai d'abord une classe abstraite Object_Type dans le fichier "mos-objetc.ads". Code ada :
J'ai ensuite 11 dérivation de la classe Object_Type, une pour chacun des types de base Ada dans des fichiers distincts dont voici l'éxtrait des Real dérivé du type Object_Type. Code :
Code :
Bon, à vrai dire je suis plus embêté que ça puisque j'aurais aimé pouvoir déclarer des types. Mais je suis encore aussi embêté pour les Record, les tableaux, les point-fixes, les enumération, les task, les protected, enfin, je suis très embêté.. Comment faire. Voici l'état du projet (c'est un peu gros de par les donnée embarquées et lesbibliotèques externe) : http://www.toofiles.com/fr/oip/docum...ta_001tar.html Le projet s'appelle "Mos" Merci. |
||||||
|
|
00
|
|
|
#2 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2010 Messages : 12 ![]() |
Bonjour Jovalise.
Tout d'abord, je vous conseillerai cet article (pour ada 95) et ce "rationale for ada 2005". Ils parlent des fabriques (patron de conception) en Ada, qui semblent bien correspondre à vos besoins. Si vous souhaitez plutôt faire votre fabrique à la main, dans l'idée de "déclarer un type à la volée" (avec toutes ses opérations), la solution la plus simple et proche me venant en tête serait quelque chose comme : Code ada :
p.s. : je ne sais pas si ça vient de moi, mais il semblerait que toofiles n'ait plus votre archive. |
||
|
|
10
|
|
|
#3 | ||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 649 ![]() |
Code :
C'est très élégant ! Je vais tenter une interprétation des références, mais je suis anglophobe ![]() Merci Jaizu ! Pour l'archive ell n'est plus disponible pour moi non plus. |
||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 649 ![]() |
Si je met un type accès à Any_Conrete_Type dans mon type Generic_Object, C'est bon ?
Merci pour vos réponse. |
|
|
00
|
|
|
#5 | ||||||||||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 649 ![]() |
Je n'ai pas compris l'utilité de la démarche en fait.
J'ai un peu tourné mon code dans tout les sens. Je ne sais pas si ce que je suis parvenu à faire est correct et représentatif de ma solution. Bon, la bibliothèque s'appelle cnnc.ads Je me demande si j'ai pas un peu tout confondu ce coir. Au résultat, je doit pourvoir appliquer des opération sur des objets qui son la propriété d'utilisateurs. Ici, on ne se préoccupe pas des utilisateurs. Voici ce que j'ai fait : Code :
Code :
Code :
Code :
![]() C'est à dire j'ai pasé la journé à étudier d'autre piste. 2Le main pour la forme : Code :
|
||||||||||
|
|
00
|
|
|
#6 | ||||||||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2010 Messages : 12 ![]() |
Citation:
Citation:
![]() Dans ce cas, je vais donc Comme je n'ai malheureusement pas pu vérifier, j'ai fait les suppositions suivantes de ce que j'ai vu : les méthodes initialize / make / finalize vont faire la même chose modulo le type. De plus, il y a un pointeur de classe pour chaque type dérivé. Voilà ce à quoi je pensais pour l'implémentation générique : Code ada :
Ce qui permet ensuite d'écrire : Code ada :
On aurait alors quelque chose de fortement similaire au paquetage real du premier post en théorie. Ada fournit aussi de quoi manipuler les types : Code ada :
Il y a aussi le paquetage Ada.Tags qui devrait se montrer intéressant ainsi que l'attribut 'tag. En espérant que ça vous sera utile. |
||||||||
|
|
00
|
|
|
#7 | |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 649 ![]() |
Citation:
Merci encore Jaizu. |
|
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 649 ![]() |
Bonjour, bonjour Jaizu,
J'en suis toujours au même point, à réfléchir. Le problème de l'implémentation que vous me proposez est que je ne peut pas mettre tout les type d'objets dans un seul est unique gestionnaire de données. Existe t-il une solution, je suis au mieux bloquer par la séparation des types limités et les autres. Si vous aviez une réponse, est t-il possible de mettre tous les objets dans une même gestionnaire de donnée. Un gestionnaire hétérogène quoi ? Merci pour vos réponses. |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : mars 2011 Messages : 22 ![]() |
Bonjour,
Je vous donne schématiquement mon idée pour construire et gérer un univers d'objets qui peuvent être très généraux à travers leur encapsulation dans les dérivés d'un type d'objet racine Père.
Créer à part un container ordonné qui sera l'univers de vos objets (atomes, couples, listes, ensembles...) avec pour relation d'ordre la relation d'ordre générale du type Obj. Attention ce container de doit pas être d'un type descendant du type Obj. Bien sûr il faudra savoir gérer cet univers d'objets lors de leurs créations, modifications et disparitions. Par exemple à sa création on peut faire en sorte que tout objet soit inséré dans le container univers. Cela permettra d'ailleurs d'éviter les doublons. On peut aussi associer à chaque objet O de l'Univers un container d'objets amis (pas un objet ensemble descendant du type Obj ! sinon on aura des problèmes de cohérence) qui rassemble tous les autres objets de l'univers dans lesquels O intervient. Si O venait à être finalisé avant disparition, son container d'amis donnerait tous les autres objets à mettre à jour (il y a un joli tri topologique dans le graphe des relations entre objets à mettre en œuvre pour que l'univers puisse évoluer en douceur). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com