Citation:
Envoyé par Luc Hermitte
Des classes sans composition ni héritage ne sont pas des abérrations. J'en ai des tonnes des comme ça.
Bon d'accord, ça me parait bon comme approche pour moi.
Citation:
Envoyé par Luc Hermitte
Ne connaissant pas ton problème, j'ai un peu de mal à voir tes histoires de couplages. p.ex. En quoi un numéro de choc est-il pertinent pour construire une caméra ? Pourquoi une caméra est associée à un choc ? Ne vit-elle pas sa propre existance en dehors de tout choc ?
Oui je comprend que ce soit pas facile à comprendre. C'est quand même une machine pas comme les autres que j'ai à gérer... Quelques infos quand même: un "choc", c'est une expérience dans le jargon des physiciens. Ce qu'on étudie ici ce sont les chocs, i.e les expériences réalisées.
Les caméras infrarouges sont toutes en communication avec une base de données centrales. Pour initialiser une caméra, il faut avoir connaissance de tous ces paramètres (température des optiques, transmission etc.), qui varient à chaque expérience. Elle vit donc sa propre existence en dehors de tout choc, mais pour analyser les films qu'elle produit, il faut ce numero de choc!
Citation:
Ne peut-elle pas être synthonisée au dernier moment dans la fonction de Choc qui a besoin de la caméra ?
Ben je pense que c'est possible. A voir
Citation:
Pour les constructions. L'idéal, en ce qui me concerne, c'est ton cas 1) (on fait tout dans la liste d'initialisation). Parfois, on n'a pas le choix et des initialisations doivent être retardées.
Dans ma tête, je pensais faire tout d'un coup. Lorsque que dans ma classe choc, je rentre le numero du choc et le nom du composant face au plasma à regarder, tout s'enchaine: initialisation de la camera, capture automatique de la bonne image infrarouge de référénce, chargement des points de controle... Tout ça dans le constructeur...
Peut-être ai-je été un peu gourmand... ;)
Citation:
C'est très bien un objet qui fourni des fonctions réalisant les services dont on n'a besoin. Nul besoin de tout composer. La bétonière n'est pas un élément du maçon. Par contre, elle est là et il peut aller y accéder lorsqu'il en a besoin. Le maçon est sur un chantier où un certains nombre de ressources sont disponibles -- là, on est un peu dans une logique entité.
Voilà quelque chose qui m'intéresse ENORMEMENT. Ma classe principale (Choc tu l'auras compris) possède plusieurs attributs : Camera, *cfp et numero_choc. Les deux premiers, on peut pas vraiment dire qu'ils sont nécessaires au sens bétonière/maçon. Un choc étant une expérience, il ne "possède" pas une camera...
Le truc c'est que pour un choc donné, on analyse à la fois qu'un seule composant (CFP) via une seule camera (Camera). J'ai cru bon de les regrouper dans choc.
Peut-être vaut-il mieux que je les laisse séparer, et alors que j'utilise une méthode CreationCamera, et NouveauCFP...
Franchement j'en sais trop rien, y'a tellement de possibilités. Des conseils ici seront grandement les bienvenus! :D
Citation:
Dans la construceur tu prendras ton ciment, les graviers, l'electricité, le tuyau d'arrosage, le manipulateur,... Cela servira à initialiser des ressources locales à l'algorithme. Ses services vont être de démarrer le processus, de réagir à des événements (rajout d'"ingrédients"), de programmer des événements (timer, observation d'un état "acceptable", ...). Une fois l'état acceptable atteint, on peut aller chercher ce qui a été préparé.
Oui mais comment récupérer les noms des objets? Comment savoir lequel a été déjà été instancié? Le ciment, les graviers, tu les crées dans le constructeur de béton? Tu t'assures qu'ils sont bien créés, sinon tu les créés? Typiquement ce sont des questions génantes pour moi...
Toutefois, je comprend parfaitement l'esprit, et je sens approcher à grand pas de la solution finale...
Citation:
C.-à-d. une classe qui va ponctuellement être instanciée dans une fonction (en fonction du contexte d'exécution) pour réaliser un traitement fonction de ce contexte courant. A la fin de la fonction cliente, plus besoin de l'objet. Il n'y a pas de composition.
Oui oui, je comprend bien.
Pas de composition, juste un appel occasionnel.
Citation:
Un attribut, tant que ce n'est qu'un attribut (donnée d'implémentation), ce n'est pas choquant de le dupliquer. Le tout est de savoir d'où il vient et comment tu pourras le transmettre aux divers traitements qui en ont besoin.
Enfin. Cela ne me choque pas si l'attribut est avant tout une valeur immuable. Si'il s'agit d'une entité autonnome, cela veut dire que l'on va soit sortir les pointeurs, soit mettre en place des mécanismes complexes de propagation des changements d'état.
Oui je vois. J'avais déjà pensé aux pointeurs.
Les mécanismes de propagations c'est ce que j'essaye de faire, mais c'est pas évident de faire ça proprement...
Merci encore pour ton aide!;)