|
Méthode de programmation avec zcobj — Document — 05/06/2004 15:59:33Concepts générauxLors de la réalisation d'un logiciel, il est possible d'avoir différentes approches. Cependant on a toujours une décomposition du logiciels en sous éléments (modules, classes, procédures, sections ..). Les questions qu'il faut se poser sont: Pour la première question, il n'y a pas de réponse stricte mais on peut faire quelque recommandations: Quand il s'agit d'utiliser les éléments pour un faire une application complète il y a généralement 2 approches : Structurer une application avec zcobjzcobj a hérité de zcxml la structure en arborescence inspiré du XML: Le programme est organisé en arbre, la racine est la classe principale du programme, elle assure le fonctionnement général du programme (boucle principale ..). Chaque branche est une classe (héritant de zObj) gérant un aspect de plus en plus précis du programme : par exemple "main"/"connexions réseau"/"connexions de type FTP"/ ... ou encore "main"/"configuration"/"configuration des utilisateurs"/... Cette méthode à pour avantage de permettre un rangement naturel des classes et de permettre différents traitement sur toute une branche: pour sauvegarder la configuration il suffit de sauvegarder toute la branche configuration (format XML), la suppression d'une classe assure la suppression de toutes ses sous-branches etc.. zcobj ajoute de nouveaux concepts à l'architecture par arbre simple, en particulier le système de liens entre branches : Il est souvent utile de lier deux classes situées dans des branches éloignées (ex: "configuration des connexions" et "connexions actives"), pour cela zcobj propose un mécanisme qui permet de lier ces branches. (un lien est coupé automatiquement si l' une des classes est supprimée). Pour simplifier la création d'une classe principal, un programme basé sur zcobj peut utilisé zcmain. Cette classe gère une instance de zcselect (gestion de sockets et timers) et s'occupe d'une liste d'objet à effacer (un objet ne pouvant pas s'effacer lui-même). La fonction Loop qui gère ces fonctionnalités, constitue une base pour une boucle principale de programme (celle-ci peut effectuer d'autres travaux mais dans de nombreux cas on peut se limiter à cette fonction). | |||