-
Classes ou fonctions ?
Bonsoir,
Je programme actuellement un "bot irc" comme vous aviez pu le constater dans mes différents postes. Et j'ai eu l'idée de créer une classe pour tout ce qu'est gestion de base de donnée avec mysql. Et une seconde pour toutes ce qui est "outils", ce qui m'aide pour parser du texte par exemple. Seulement si je fais cela, je serais obligé de créer une classe pour la création et gestion de mon socket. Je me demande donc dans quelle direction je dois me dirriger, soit j'utilise des fonctions soit je refais tout en utilisant des classes. Si vous me proposez les classes, auriez vous des tuto sur l'architecture à employer ? Histoire que tout soit bien structuré et que chaque classe ai un rôle précis. J'ai quelque idées en tête, tout d'abord une classe gèrant le socket, puis une classe gèrant tout ce qui à une relation avec mysql et une dernière qui serait mes outils. Pour les outils je me demande, si je ne devrais pas garder mes fonctions au lieux de les mettre dans une classe ? Ce serait sympa de votre part de me proposer votre "architecture" ^^
Merci d'avance
-
J'ai envie de dire :
- Une classe est intéressante pour conserver de l'état
- Une classe est intéressante pour encapsuler des détails d'implémentation
- Une classe est intéressante quand on l'utilise de manière polymorphe
J'oublie sûrement des cas...
-
J'en rajoute une:
-Une classe est intéressante niveau reflection du codage. Ca oblige à faire des choses qui sont plus indépendantes que des fonctions.
Fait une classe MySQL et dedans tu y code toutes tes fonctions pour MySQL
Fait une classe Outil et tu code tes fonctions pour les outils
Et enfin ta classe Socket
Une fois que tu as fait ca, tu regarde comment tes objets peuvent intéragir entre eux. Si tu ne voit pas de lien c'est que tu as peut etre oublier d'implémenter des fonctions dans une ou plusieurs de tes classes.
Imagine que tu as commencé à coder tes classes et la pas de bol tu t'apercoit qu'il manque des fonctions ou des données dans une des classes. Et bien le fait d'avoir des classes rend le reste du programme indépendant de tes modifications.
Donc oui fait des classes.
Si tu dois faire une librairie, utilise des pure interfaces pour rendre la technologie utilisé par la librairie independant du code du programme.
-
Merci pour toutes ces informations, je vais commencer par faire un schéma de mes classes et méthodes pour pouvoir commencer à coder tout ça en ayant une "architecture" de base et pour savoir qui fait quoi et agît sur quoi. Je vous proposerais ensuite mon travail, pour avoir votre avis sur la chose.
-
Ok vas y. Amuse toi si c'est pour rigoler sinon si c'est pour le travail bon courage.
-
Pour faire le shema de tes classe tu devrai utiliser l'UML il y a bcq de documentation la dessus et de programme qui peuvent te simplifier la tache( BoUML http://bouml.fr/ , ArgoUML http://argouml.tigris.org/ ...)
-
Merci, je comptais justement utiliser l'UML et chercher de la doc ^^