Lors d'une revue de code aujourd'hui, un de mes collègues a dit quelque chose d'intéressant: prototypen'est utile que lorsque vous avez besoin d'héritage - et quand l'héritage est-il une bonne idée ? J'y ai pensé et j'ai réalisé que j'utilisais généralement l'héritage pour contourner le code mal conçu au départ. …
Voici un scénario courant qui est toujours frustrant pour moi. J'ai un modèle d'objet avec un objet parent. Le parent contient des objets enfants. Quelque chose comme ça. public class Zoo { public List<Animal> Animals { get; set; } public bool IsDirty { get; set; } } Chaque objet enfant …
class Boxer: def punch(self, punching_bag, strength): punching_bag.punch(strength) class PunchingBag: def punch(self, strength): print "Punching bag punched with strength", strength boxer = Boxer() punching_bag = PunchingBag() boxer.punch(punching_bag, 2) Pas de doute, c'est punchun bon nom de méthode dans le cas d'un boxeur. Mais le nom est-il punchégalement bon pour la méthode …
obj.idsemble assez commun et semble également se situer dans la portée de quelque chose qu'un objet pourrait savoir sur lui-même. Je me demande pourquoi mon objet devrait-il connaître son propre identifiant? Il ne semble pas avoir de raison de l'avoir? L'une des principales raisons de son existence est de le …
Alan Kay affirme que "j'ai inventé le terme" orienté objet ", et je peux vous dire que je n'avais pas C ++ en tête." Ce qu'il avait en tête, bien sûr, c'était Smalltalk. Mais il n'a pas inventé lui-même la programmation orientée objet; il a obtenu les idées de base …
Le couplage lâche est, pour certains développeurs, le Saint Graal d'un logiciel bien conçu. C'est certainement une bonne chose lorsqu'il rend le code plus flexible face aux changements susceptibles de se produire dans un avenir prévisible, ou évite la duplication de code. D'un autre côté, les efforts de couplage lâche …
J'ai une classe CPP dont le constructeur effectue certaines opérations. Certaines de ces opérations peuvent échouer. Je sais que les constructeurs ne retournent rien. Mes questions sont, Est-il autorisé d'effectuer d'autres opérations que l'initialisation des membres dans un constructeur? Est-il possible de dire à la fonction appelante que certaines opérations …
Je viens d'un milieu OO solide et j'ai récemment commencé à travailler dans une organisation qui, bien que le code soit écrit en Java, met beaucoup moins l'accent sur une bonne conception OO que ce à quoi je suis habitué. On m'a dit que j'introduisais "trop d'abstraction" et que je …
Dans mon travail actuel, j'ai été chargé de nettoyer l'ancien code à quelques reprises. Souvent, le code est un labyrinthe et les données qu'il contient sont encore plus enchevêtrées. Je me retrouve à peigner les choses en méthodes agréables, soignées et modulaires. Chaque méthode fait une chose et la fait …
Cette question a été migrée depuis Stack Overflow car il est possible d'y répondre sur Software Engineering Stack Exchange. Migré il y a 8 ans . J'ai vu d'autres développeurs utiliser des classes statiques comme espaces de noms public static class CategoryA { public class Item1 { public void DoSomething() …
Fermé. Cette question est hors sujet . Il n'accepte pas actuellement les réponses. Vous souhaitez améliorer cette question? Mettez à jour la question afin qu'elle soit sur le sujet pour Software Engineering Stack Exchange. Fermé il y a 4 ans . J'ai récemment entendu un instructeur mentionner que le développement …
Je suis chargé d'obtenir une application héritée sous test unitaire. Tout d'abord quelques informations sur l'application: il s'agit d'une base de code Java RCP 600k LOC avec ces problèmes majeurs duplication massive de code pas d'encapsulation, la plupart des données privées sont accessibles de l'extérieur, certaines des données commerciales ont …
Disons que j'ai une interface FooInterfacequi a la signature suivante: interface FooInterface { public function doSomething(SomethingInterface something); } Et une classe concrète ConcreteFooqui implémente cette interface: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } J'aimerais ConcreteFoo::doSomething()faire quelque chose d'unique s'il passe un type d' SomethingInterfaceobjet spécial …
Je ne me souviens pas quand j'ai écrit la classe générique la dernière fois. Chaque fois que je pense que j'en ai besoin après avoir réfléchi, je tire une conclusion que je n'ai pas. La deuxième réponse à cette question m'a fait demander des éclaircissements (puisque je ne peux pas …
Il y a beaucoup de raisons pour lesquelles les globaux sont mauvais en POO. Si le nombre ou la taille des objets à partager est trop important pour être efficacement transmis dans les paramètres de fonction, tout le monde recommande généralement l' injection de dépendances plutôt qu'un objet global. Cependant, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.