-
Programmation Objet
Bonjour,
Je suis débutant en programmation, et je me forme tout seul.J'ai lu plusieurs livre, plusieurs Tuto sur le net , et je me suis décider a programmer un petit logiciel de gestion d'entreprise.Finalement je me rend compte que je ne sais pas appliquer la programmation Objet.
Par exemple: pour gérer les client j'ai créer une interface graphique assez complète dans laquelle j'ai des JTextField.
je récupère les valeurs saisie par l'utilisateur par JTextField.getText() et je stocke ça dans une base de données, mais je n'ai pas créer par exemple de classe client avec des getters et des setters, et je n'en vois pas l'utilité, quelqu'un pourrait m'expliquer à quel moment doit-on faire ce genre de classe je pense, que je devrais faire une classe pour les articles, une pour les fournisseurs, les clients etc... hors moi c'est une classe par JPanel en fait, et je ne raisonne qu'en interface graphique je pose ma zone de texte et je récupère la valeur.
Ma question est pourquoi à t-on besoin de créer par exemple une classe client, fournisseurs avec des getters et des setters puisque je peut accéder a mes données via les jTextField.
J'espère que j'aurais été clair dans ma question et désolé si la question parait bête mais je ne comprend pas.
Merci.
-
Bonjour,
Bah en faite cela vient essentiellement de la maintenabilité de ton code.
Il faut surtout que tu comprenne le principe même de l'objet et la conception de ce dernier.
Les getteurs et les setteurs te permette l'encapsulation de tes données ou la protection par exemple tu met des variables dans ton objet il faut les protéger pour cela tu fait des getteurs pour y accéder et des setteurs pour les modifier.
Et ça préserve de faute bête.
Ensuite tu découpe au maximum tes tables dans ta base pour alléger la taille des données et facilité la lecture ainsi que rendre plus propre et plus simple d'utilisation ces dernières bah c'est la même chose en objet.
C'est moins chiant a relire, plus tu découpe plus tu limite la redondance de code et pour la propreté et l'optimisation ainsi que la souplesse de ton code c'est mieux.
Ça va te simplifié la vie de bien découpé et de bien différencier toutes les partie de ton projet.
Ensuite si ton projet est bien penser tu passe par les héritage tous ça tous ça.
Et ne mélange pas les parties graphique, récupération données, traitement données.
Ce n'est pas la même chose et ton projet si dans 6 mois tu as un pb et que tu ne fait pas sa tu peut le recommencer
-
Si je résume :
Pourquoi faire une classe client, fournisseur,... avec des getteurs et des setteurs? Alors que j'ai juste à récupérer les valeurs des JTextField et les envoyer dans la BDD?
Et bien pour faire plus propre et plus ordonner. ex : combien d'arguments possède un client -> Je ne vais pas m'amuser à parcourir tous les JTextField et les compter alors que j'ai juste à regarder les variables de classe dans la classe Client.
Ensuite, dans le cas d'une architecture MVC, tu a besoin de passer tous les paramètre de tes JTextField au controlleur, qui lui même les passent au Modèle.
Plutot que de faire une méthode
Code:
public void modification(int num, String nom,...)
Tu fais une méthode
Code:
public void modification(Client c)
Et si tu veux modifier/ajouter/supprimer une varible de Client (ex : adresse), il suffit de l'ajouter dans la classe Client. Pas besoin de modifier la signature de la méthode modifier. Et ça c'est cool :mrgreen:
-
Merci pour ta réponse
Comment alors je dois procéder?
Je créer l'interface graphique, et à pars je met les actions des boutons et ces dans ces derniers que je place la récup des valeurs saisie? car à un moment données faut bien les récupérer ces valeurs des JTextFields par exemple.
Pour moi la protection se faisait par les mot clé Private et public, s'il s'agit de variable d'instance ou de classe,je ne vois toujours pas l'intérêt des getters et des setters, pourtant dans programmer en java de claude Delannoi ils dit que c'est important!!
Mon projet est découper en package et en plusieurs classe, une par JPanel en fait, mais pas de setter ni de getters je comprend toujours pas leur utilités désolé ça doit être tout bête .
-
Voici l'utilité :)
http://fr.wikipedia.org/wiki/Encapsu...(programmation)
Mais je te conseil de voir les principes de l'objet avant le développement afin que tu comprennes vraiment a quoi tous sert
-
Je suis ok pour regarder la programmation objet avant de commencer la prog ceci dit l'application que je fais c'est pour tester rien de plus, pour mettre en pratique, mais je me suis déjà renseigner sur la prog objet et j'arrive pas à dissocier interface graphique du reste, mais dans beaucoup de tuto et de livres c'est: Je créer la classe animals, puis la classe chien qui hérite de animals, pour accéder a son nom j'ai le getters 'nom' etc... hors ça j'ai compris mais de passer de ce genre d'exemple, à un cas pratique c'est plus difficile enfin pour moi.
Donc d'après ce que je comprend c'est beaucoup une question de lisibilité et de clarté, je vais essayer d'implémenter la classe client, ça me permettra de mieux comprendre
-
Et de réduire la redondance de code.
chien et chat ne font pas la même chose
mais il on tous les deux 4 pattes et une queue
donc la classe animal va avoir c'est donné la
plus tu descend dans l’héritage plus tu spécialise c'est sa sont but :)
Et plus tu est précis et plus ce que tu fait a une utilités
-
bonjour,
il y a un article sur le modèle MVC, cela devrait surement te donner des informations précieuse !
-
Les getter et les setter ne sont pas une fatalité. Il y a plusieurs écoles qui s'affrontent sur le sujet. La question n'en est que plus légitime.
-
Merci pour vos réponses je vais éssayer de mieux comprendre tous ça je n'avais pas assez travailler le modèle MVC donc je vais m'y mettre sans plus attendre et peut être je comprendrais mieux tous ça.
Merci encore à présent je sais que c'est un sujet à discution, que c'est plus propre, plus sécurisé, et qu'il faut s'orienter vers le MVC pour mieux comprendre ça, je met ce post en résolu