Je suis un débutant pour programmer lorsque je commence à coder, je commence à écrire et à résoudre le problème. J'écris tout le programme dans une seule fonction principale. Je ne sais pas quand faire classe, et fonctionne. P>
Quels sont les bons livres que j'ai lus pour apprendre ces concepts? P>
6 Réponses :
regarder p>
Procédure, sous-programme ou fonction? , Programmation orientée objet P>
Un objet est en fait un discret paquet de fonctions et de procédures, tous relatifs à un particulier concept réel tel qu'une banque titulaire de compte ou joueur de hockey dans un jeu d'ordinateur. Autres morceaux de Le logiciel peut accéder à l'objet uniquement par appeler ses fonctions et procédures qui ont été autorisés à être appelés par Outsiders. P> blockQuote>
Fondamentalement, vous utilisez une fonction / procédure / méthode pour encapsuler une section de code spécifique qui fait un travail spécifique ou une réutilisation. P>
Les classes sont utilisées pour encapsuler / représenter un objet avec éventuellement ses propres données et une fonction / procédure / méthode spécifique qui permet d'utiliser avec cet objet. P>
Dans certaines langues, les classes peuvent être rendues statiques, avec une fonction statique / procédure / procédé pouvant ensuite être utilisée comme fonction d'assistance / procédure / méthode p>
Il s'agit d'une question stylistique et de préférence et en fonction de la manière dont une place que vous travaillez pourrait être une question de normalisation. Je suis quelques règles. P>
Il y a une tonne d'opinions, mais au fil du temps, vous devez développer votre propre style. p>
Je pense que la réponse canonique ici est que vous devez organiser votre code afin qu'il soit lisible et maintenu. Cela dit, il est également important d'examiner le coût de l'organisation de votre code et de la durée de votre réponse à votre code. P>
Plus directement en réponse à votre question: les fonctions doivent être utilisées pour remplacer les pièces de code répétitives ou autrement bien contenues. Si vous appliquez les mêmes 10 opérations encore et encore sur les mêmes types d'éléments / données, vous voudrez peut-être réfléchir à la collecte de toutes ces informations dans une fonction plus concise et claire. En général, une fonction nécessite des entrées et des sorties bien définies. P>
classes, essentiellement, collectez des fonctions et des données ensemble. Tout comme vous devriez utiliser une fonction pour collecter des opérations dans des collections d'opérations concises et bien définies, les classes doivent organiser em> fonctions et données pertinentes pour être stockées ensemble. C'est-à-dire que si vous avez une bande de fonctions qui opèrent sur certaines choses comme un volant, des freins, des accélérateurs, etc. Vous devriez penser à avoir une classe de véhicule pour organiser ces fonctions et objets / objets pertinents. p>
Au-delà d'agir en tant qu'élément organisationnel, les classes doivent être utilisées pour permettre une réutilisation facile et la création de "choses" multiples - supposons que vous souhaitiez une collection de ces véhicules. Les classes vous permettent de crier de la signification ou d'au moins une sémantique à votre programme. p>
Le point de tout cela, cependant, est de rendre votre vie et la vie des autres plus facilement Hen pour la création et la maintenance de votre programme. Donc, par tous les moyens, lorsque vous avez besoin d'une solution à un problème en moins de dix minutes et que vous pensez que c'est un programme d'utilisation unique, ignorez tout cela si vous pensez que cela vous laissera accomplir ce que vous devez plus rapidement. Gardez à l'esprit, toute cette organisation, la sémantique et la facilité d'opération de répétition n'existent pas pour le rendre plus facile em> pour atteindre vos objectifs. p>
Une question très générale, donc quelques règles de pouce: p>
Code Réutilisation: Lorsque vous avez le même code de code identique ou très similaire à deux endroits, il devrait être déplacé vers une fonction p> li>
Réadaptability: Si une fonction couvre plus d'une seule page à l'écran, vous voudrez peut-être la rompre à plusieurs fonctions P> LI>
FOCUS: Chaque classe ou fonction ne doit faire qu'une tâche spécifique. Tout ce qui n'est pas noyau à cet objectif doit être délégué à d'autres classes / fonctions. P> li> ul>
+1: surtout pour le troisième point (qui devrait être en gras IMHO) :)
Ouais .. je vais dire ça aussi. L'accent mis sur le 3ème point. Fondamentalement, si vous pouvez donner un nom à quelques lignes de code (décrivez ce qu'il fait dans environ 3 mots ou moins), alors faites-le.
C'est en fait très simple Nicky! P>
Le but de fractionnement du code dans les méthodes est simplement de permettre sa réutilisation. Lorsque vous créez une méthode, vous autorisez votre programme à l'invoquer à tout moment à partir de plusieurs endroits au lieu de répéter le code encore et encore. P>
Donc chaque fois que vous écrivez des lignes et pensez ... 'Hé, j'ai peut-être besoin de cette fonctionnalité quelque part dans mon programme', alors vous devez le mettre dans une méthode. P>
Quant aux cours, vous allez essayer de grouper des fonctionnalités similaires. Et essayez de garder des cours courts et simples. Si vous avez besoin de plusieurs classes, vous les regroupez également dans des packages, etc. P>
Lorsque j'écris du code, j'ai généralement une bonne idée de ce que j'utiliserai à nouveau. Mais souvent, je vais commencer à écrire quelques lignes de code et je me rendrai compte que j'ai écrit quelque chose de assez similaire dans le passé. Je vais donc le trouver et le mettre dans une méthode puis les deux ou plusieurs emplacements peuvent maintenant simplement l'invoquer. C'est la réutilisation à son meilleur! P>
Vous pouvez souvent utiliser des analyseurs pour trouver diverses métriques qui «mettre une grade» sur votre réutilisation et votre duplication de code. P>
Apprentissage heureux! P>
"Le but de la fractionnement du code dans les méthodes est simplement de permettre à sa réutilisation"
Naw, tu n'es pas de nitpicky. Je t'en ai 2 ans;)
Je n'ai jamais dit que c'était la seule raison !! Qui sont ces idiots qui déclassent des réponses comme ça! Pas utile? T'as raison! Mon message est probablement la meilleure raison de la raison pour laquelle vous divisez votre code. Quel est cet endroit?
Juste FYI, cela deviendra plus évident quand et pourquoi les fonctions sont utiles à mesure que vous progressez vers des projets plus importants. J'étais un peu confus par leur utilisation lorsque j'ai également commencé, lorsque tout votre programme n'est que 20 à 50 lignes de code qui suit un chemin très linéaire, ils n'ont pas beaucoup de sens. Mais lorsque vous commencez à réutiliser les mandats du code, il est logique de le jeter dans des fonctions. Il est également plus facile de lire et de suivre la logique de votre programme si vous ne devez lire que des noms de fonction descriptifs plutôt que de déchiffrer les 5 lignes de code suivantes. P>
Je sais que la question est la langue agnostique, mais si vous nous dites quelle langue vous utilisez, nous pourrions peut-être vous aider un peu plus.
Ceci est (à mon avis) et non un duplicata de Stackoverflow.com/questions/1474980/...
Je parle de la langue Java. J'utilise fréquemment swing