J'ai un collègue qui m'a dit qu'il avait travaillé dans une entreprise qui avait pour politique de ne jamais avoir de conditionnelles (instructions "if" et "switch") dans le code et qu'ils laissaient toutes les décisions dans le code être prises en utilisant le polymorphisme et (je suppose) d'autres principes OO.
I en quelque sorte Je comprends le raisonnement qui sous-tend ce concept, à savoir que le code est plus rationnel et plus facile à mettre à jour, mais je cherche une explication plus approfondie de ce concept. Ou peut-être cela fait-il partie d'une approche de conception plus générale.
Si quelqu'un a des ressources à ce sujet ou est prêt à expliquer ou même à avoir d'autres termes liés à ce sujet que je peux utiliser pour trouver plus de réponses, je vous en serais très reconnaissant.
J'ai trouvé une question sur le SO c'était un peu lié mais je ne suis pas familier avec le C++ donc je ne comprends pas trop les réponses.
(Je ne suis pas un gourou de l'OO, mais je peux me débrouiller).
Je suis plus compétent en PHP, et ensuite en Python, donc je préfère les informations qui utilisent ces langages.
Mise à jour : je demanderai à mon collègue plus d'informations sur ce qu'il voulait dire exactement.
Mise à jour 2015 : après quelques années supplémentaires d'expérience en programmation, je vois maintenant que le but de cette politique était probablement d'empêcher les programmeurs d'ajouter des fonctionnalités de manière désordonnée en ajoutant simplement des conditionnels (instructions if) à certains endroits. Une meilleure façon d'étendre un logiciel est d'utiliser la fonction "Principe d'ouverture/fermeture" où les logiciels sont étendus en utilisant l'héritage et le polymorphisme. Je doute fortement que la politique ait été super stricte sur tous les conditionnels car il est assez difficile de s'en passer complètement.
16 votes
Quelle est cette entreprise dont parle votre collègue ? Je demande pour pouvoir les éviter. Les instructions de contrôle de flux sont fondamentales pour la programmation. Si je ne peux même pas utiliser les outils les plus basiques lorsqu'ils sont appropriés pour faire le travail, qu'est-ce que je ne peux pas utiliser d'autre ? Oui, il est vrai que vous pouvez abuser
if
mais c'est vrai pour tout le reste.16 votes
@In silico - Les déclarations de contrôle de flux sont fondamentales pour procédure la programmation. Le polymorphisme est fondamental pour la programmation orientée objet. Cela dit, la plupart d'entre nous utilisent les deux paradigmes.
6 votes
@TrueWill : Le contrôle du flux est fondamental pour la programmation impérative, et la POO est autant basée sur la programmation impérative que sur la programmation procédurale. Même lorsque vous faites de la POO "pure", vous avez toujours la même chose enveloppée dans une robe légèrement plus POO (
condition ifTrue
tel que Smalltalk le fait, a essentiellement le même effet et la même signification queif condition
). Et vous ont d'utiliser un certain contrôle de flux sur le polymorphisme, à moins que vous ne vouliez envelopper tout (comme la régularité d'un nombre entier) en objets dédiés.2 votes
Duplicata possible de Pouvez-vous écrire un algorithme sans instruction if ?
0 votes
Le polymorphisme dépend fortement de la surcharge, donc pour des langages comme js et php vous êtes condamnés avec cette approche.