Où mettre toutes ses fonctions ? [newbie] - C#/.NET managed - Programmation
Marsh Posté le 23-03-2007 à 09:58:45
Citation : |
Tu donne la réponse à ta question
Marsh Posté le 23-03-2007 à 10:10:29
ReplyMarsh Posté le 23-03-2007 à 10:15:09
Citation : Tu donne la réponse à ta question |
Concernant l'appli sur la quelle je bosse en ce moment, j'ai :
- une fonction pour copier des fichiers,
- une pour tester la validité de chemins (C:\windows, etc..),
- une autre qui retourne la taille totale de chaque répertoire
- et d'autres fonctions annexes qui n'ont rien à voir...
Il faudrait donc que je les rassemble toutes dans une classe ?
Ca revient à faire ce que j'ai déjà fais du coup...
Sinon, si je les mets en vrac dans ma page principale, dans des "région", mon code restera compréhensible, non ?
Marsh Posté le 23-03-2007 à 10:18:35
Tu pourrais faire une classe composée de methodes statiques pour ça, ca serait un peu plus dans l'esprit objet.
De plus, toutes les fonctions que tu citent existent déjà dans le framework, tu ne ferais que les encapsuler. Est-ce justifié ?
Marsh Posté le 23-03-2007 à 10:24:42
pot2yaourt a écrit :
|
Non, surtout pas ! Idéalement ta page principale ne doit comporter que du code de mise en forme et le strict nécessaire pour rapatrier les données.
Sinon, concernant les méthodes que tu décrits, mon idée rejint celle de _darkalt3_
Marsh Posté le 23-03-2007 à 10:27:28
pot2yaourt a écrit : Sinon, si je les mets en vrac dans ma page principale, dans des "région", mon code restera compréhensible, non ? |
Concepts opposés spotted.
Les régions ne sont qu'un outils pour faciliter la lecture.
Un code compréhensible est un code correctement conçu, ce qui n'a rien à voir avec le fait de pouvoir cacher du bordel.
Marsh Posté le 23-03-2007 à 10:34:54
Bon, ben merci pour vos réponses constructive !
Effectivement, dans ce cas, le "region" sert plus à cacher le bordel que structurer mon code.
Je vais donc opter pour les méthodes statiques.
Encore merci pour votre aide !
Bonne journée !
Lionel.
Marsh Posté le 23-03-2007 à 11:11:51
pot2yaourt a écrit : |
Je suis pas d'accord du tout... Le C# est un langage OO, et implique donc une programmation OO. Sémantiquement, une méthode statique est utilisée lorsque la classe n'a pas besoin d'être instanciée. Ce sont généralement des méthodes "utilitaires" qui travaillent souvent sur leurs données locales (et pas celles de la classe). Elles ne devraient pas être utilisées pour "émuler" du procédural.
Si tu décides de te mettre au C#, alors tu codes "C#". Si tu tiens absolument au procédural, alors utilise un langage comme Python, qui permet de faire de l'objet, du procédural ou du fonctionnel.
Marsh Posté le 23-03-2007 à 09:09:50
Bonjour à tous,
Avant toute chose, je vous le dis tout de suite, je débute en C# !! Donc, si vous êtes un gourou du C# et/ou que les lignes suivantes vous font dresser les cheveux sur la tête, c'est pas la peine d'hurler votre colère: allez voir ailleurs.
Par contre, si vous voulez me donner qqs conseils constructifs, alors lâchez vous, vous êtes les bienvenue !
Bon, alors voilà, je développe essentiellement en PHP et j'ai pris l'habitude de mettre toutes mes fonctions dans un fichier à part, par exemple: fct_db.php pour les fonctions liées à la base de données, fct_img.php pour les traitement d'images, etc...
Ce qui fait que dans le corps de ma page principale, j'ai en début de page quelques "require('mon_fichiers.php');" et ensuite uniquement des appels aux fonctions qui sont contenues dans ces fichiers. Du coup, on ne voit que l'essentiel du code et ça reste donc très clair. Bien entendu, il s'agit là de programmation procédurale.
Maintenant que je me mets petit à petit au C#, j'aurai aimé faire de même, c'est à dire mettre dans un fichier les fonctions qui me servent à faire le café et autres et garder la page, contenant les différents événements, propre.
Pour l'instant je ne sais pas comment faire... et est-ce une pratique courante en C# ? Actuellement, le seul moyen que j'ai trouvé est de créer une classe "Tools" contenant mes différentes fonctions. Le pblm c'est que je n'appelle pas ça faire de l'objet... instancier une classe bidon juste pour utiliser ses méthodes sans qu'elle n'aient aucune relations ou rapport entre elles... je trouve que c'est plutôt bof !
Y'a-t-il donc moyen de faire ce que je veux ou dois-je penser uniquement en objet et abandonner mes habitudes de procédurales ?
Merci d'avance à tout ceux qui voudront bien me donner une réponse constructive !