Pourquoi utiliser des classes plutôt que des fonctions?
Je ne sais certains avantages à des classes de variables et de fonctions étendues, mais d'autres que c'est juste semble plus facile pour moi d'avoir des groupes de fonctions plutôt que d'avoir plusieurs instances et les abstractions de classes. Alors, pourquoi est la "norme" du groupe de fonctions similaires dans une classe?
Si c'est un regroupement de fonctions, vous allez mal(tm).
OO est sur le groupement d'
Je prétends que tout se cacher de l'information peut être utile pour protéger l'intégrité de la classe que vous souhaitez prolonger, il n'est en aucun cas un prérequis pour l'extension. On pourrait, si ils le souhaitent, d'étendre une classe remplie avec rien, mais les champs publics. Le comportement serait prolongée de la même manière qu'une classe avec des champs cachés, et les mêmes avantages s'appliquent. C'est-à-dire, pas de défauts dans la classe comme un résultat de la publique les champs qui n'existent pas dans la classe de base. Remarque ce n'est pas de dire que je n'ai pas de soutenir fortement les deux principes, parce que je ne.
OO est sur le groupement d'
DATA
avec le FUNCTIONS
que de manipuler des données et de la cacher HOW
il manipule de sorte que vous pouvez MODIFY
le comportement par le biais de INHERITANCE
Je prétends que tout se cacher de l'information peut être utile pour protéger l'intégrité de la classe que vous souhaitez prolonger, il n'est en aucun cas un prérequis pour l'extension. On pourrait, si ils le souhaitent, d'étendre une classe remplie avec rien, mais les champs publics. Le comportement serait prolongée de la même manière qu'une classe avec des champs cachés, et les mêmes avantages s'appliquent. C'est-à-dire, pas de défauts dans la classe comme un résultat de la publique les champs qui n'existent pas dans la classe de base. Remarque ce n'est pas de dire que je n'ai pas de soutenir fortement les deux principes, parce que je ne.
OriginalL'auteur sdfadfaasd | 2011-06-25
Vous devez vous connecter pour publier un commentaire.
Le point de la programmation orientée objet n'est pas de "groupe de fonctions similaires dans une classe'. Si c'est tout ce que vous faites, alors vous n'êtes pas faire de la programmation orientée objet (malgré l'utilisation d'un langage OO). Avoir des classes à la place de tout un tas de fonctions a un effet de bord 'de variables et de fonctions étendues" que vous mentionnez, mais je le vois comme un effet secondaire.
De la programmation orientée objet est sur des concepts tels que l'encapsulation, héritage, polymorphisme, d'abstraction et de beaucoup d'autres. C'est une manière de la conception de logiciel, une manière spécifique de la cartographie d'un problème à une solution logicielle.
OriginalL'auteur Jakub Januszkiewicz
Avantages de la programmation orientée objet de la programmation:
OriginalL'auteur evilone
La principale raison est de sorte que vous pouvez plus étroitement associé à des comportements avec les données.
De considérer les éléments suivants:
Maintenant vous pouvez avoir une Cafetière objet et faire ce que vous voulez avec elle. Passer autour, d'étendre son comportement, quoi que ce soit. Les comportements de rester contenues dans l'objet. Vous ne pouvez pas faire n'importe quoi pour elle.
OriginalL'auteur corsiKa
Ce n'est pas la norme, c'est juste une façon de le faire. Les Classes de groupe de méthodes (fonctions) ET des données, basé sur le concept d'encapsulation.
Pour lager projets, il devient souvent plus facile de grouper les choses de cette façon. Beaucoup de gens trouvent plus facile de conceptualiser le problème avec les objets.
OriginalL'auteur James Scriven
Fonctions de regroupement dans une classe n'est pas la norme. Permettez-moi de partager quelques choses que j'ai apprises à travers l'expérimentation de différents langages et paradigmes.
Je pense que le concept de base ici est que d'un espace de noms. Les espaces de noms sont si utiles qu'ils sont présents dans presque tous les langages de programmation.
Les espaces de noms peuvent vous aider à surmonter certains des problèmes communs et différents modèles de motifs qui apparaissent dans de nombreux domaines, par exemple, d'éviter les collisions de noms, de cacher les détails, représentant de hiérarchies, de définir le contrôle d'accès, le groupement des symboles liés à la (fonctions ou de données), de définir un contexte ou la portée ... et je suis sûr qu'il y a plus de demandes.
Classes sont un type d'espace de noms, et les propriétés spécifiques des classes varient d'une langue à l'autre et parfois d'une version à l'autre de la même langue, par exemple, certains offrent des modificateurs d'accès, d'autres pas; certains permettent de l'héritage de plusieurs classes, d'autres ne le font pas. Les gens ont essayé de trouver la magie de la combinaison de fonctionnalités qui seront les plus utiles et qui explique en partie la pléthore d'options disponibles dans différents langages de programmation.
Alors, pourquoi utiliser des classes, parce qu'ils aident à résoudre certains types de problèmes d'une manière qui semble naturel ou peut-être intuitive. Chaque fois que nous avons écrit un programme informatique que nous essayons de capturer l'essence du problème et si le problème peut être modélisé en utilisant quelques-uns des motifs mentionnés ci-dessus, alors il est parfaitement logique pour utiliser ces fonctionnalités, d'une langue que vous aider à le faire.
Que le problème commence à être mieux compris, vous pourriez réaliser que certaines parties du programme pourrait être mieux mis en œuvre à l'aide d'un paradigme différent/fonction/motif puis il est temps pour le refactoring. La plupart des programmes que j'ai eu la chance de travailler sur de continuer à évoluer jusqu'à ce que l'argent/ressources épuisées ou lorsque nous arrivons au point de rendements décroissants, de nombreuses fois vous avez quelque chose qui est assez bon pour l'instant et il ya peu d'incitation à continuer à travailler sur elle.
OriginalL'auteur pgpb.padilla
Il existe de nombreuses raisons pour utiliser les classes, pas le moindre de ce qui est l'encapsulation de la logique. Les objets de se rapprocher davantage le monde dans lequel nous vivons, et sont donc souvent plus intuitif que les autres méthodes. Considérons une voiture, une voiture a des propriétés comme la couleur de la carrosserie, intérieur de couleur, moteur de puissance, de fonctionnalités, le kilométrage actuel, etc.. Il a aussi des méthodes, comme la méthode Start (), TurnRight(.30), ApplyBrakes(.50). Il a des événements comme le tintement quand vous ouvrez votre porte de la voiture avec les clés sur le contact.
Probablement la principale raison est que la plupart des applications semblent avoir un composant graphique de ces jours, et la plupart des bibliothèques pour l'interface utilisateur graphique sont mis en œuvre avec les modèles d'objet.
Polymorphisme est probablement l'une des raisons, aussi. La capacité à traiter plusieurs types d'objets de façon générique est très utile.
Si vous êtes un mathématicien, un style fonctionnel peut être plus intuitif, ML, F#. Si vous interagissez avec les données de façon prévisible format, un style déclaratif serait mieux comme SQL ou LINQ.
OriginalL'auteur agent-j
En termes simples, il me semble que (en dehors de tout ce que l'on dit) que les classes sont les mieux adaptés pour les grands projets, en particulier ceux mis en œuvre par plus d'un programmeur pour faciliter garder les choses en ordre; que l'utilisation de fonctions dans de telles situations peuvent devenir assez lourd.
Sinon, pour de simples programmes/projets qui vous permettrait de mettre en œuvre vous-même à faire une chose ou une autre, alors les fonctions ferait bien.
OriginalL'auteur Mohamed Tahir