L'un des principes de POO que j'ai rencontrés est: -Encapsuler ce qui varie. Je comprends le sens littéral de l'expression, c'est-à-dire cacher ce qui varie. Cependant, je ne sais pas exactement comment cela contribuerait à une meilleure conception. Quelqu'un peut-il l'expliquer en utilisant un bon exemple?
Est-ce une bonne pratique de remplacer les constantes utilisées en dehors des classes par les getters? Par exemple, est-il préférable d'utiliser if User.getRole().getCode() == Role.CODE_ADMINou if User.getRole().isCodeAdmin()? Cela conduirait à cette classe: class Role { constant CODE_ADMIN = "admin" constant CODE_USER = "user" private code getRoleCode() { return Role.code } …
Je me retrouve très souvent dans une situation où j'ai besoin d'un comportement différent d'un composant qui dépend du type concret d'une interface différente. Pour illustrer ma question, j'ai écrit un petit morceau de code qui montrera ce que je veux dire. Dans cet exemple, j'essaie d'instancier un objet alimentaire …
J'ai une classe avec deux readonly intchamps. Ils sont exposés en tant que propriétés: public class Thing { private readonly int _foo, _bar; /// <summary> I AM IMMUTABLE. </summary> public Thing(int foo, int bar) { _foo = foo; _bar = bar; } public int Foo { get { return _foo; …
Je crée un modèle d'objet pour un appareil qui a plusieurs canaux. Les noms utilisés entre le client et moi sont Channelet ChannelSet. ("Ensemble" n'est pas sémantiquement précis, car il est ordonné et un ensemble approprié ne l'est pas. Mais c'est un problème pour une autre période.) J'utilise C #. …
Ce qui suit est du pseudo code, je l'ai essayé en Java et PHP et les deux ont fonctionné: class Test { private int a = 5; public static function do_test(){ var t = new Test(); t.a = 1; print t.a // 1 } } Test::do_test(); Pourquoi pouvez-vous faire cela …
Fermé . Cette question doit être plus ciblée . Il n'accepte pas actuellement de réponses. Voulez-vous améliorer cette question? Mettez à jour la question afin qu'elle se concentre sur un problème uniquement en modifiant ce message . Fermé il y a 5 ans . Il y a quelque temps, j'ai …
Ma question est liée aux classes System.inet System.out(il pourrait y en avoir d'autres comme celles de la bibliothèque Standard). Pourquoi donc? N'est-ce pas une mauvaise pratique en POO? Ne devrait-il pas être utilisé comme: System.getIn()et System.getOut()? J'ai toujours eu cette question et j'espère pouvoir trouver une bonne réponse ici.
Fermé . Cette question doit être plus ciblée . Il n'accepte pas actuellement de réponses. Voulez-vous améliorer cette question? Mettez à jour la question afin qu'elle se concentre sur un problème uniquement en modifiant ce message . Fermé il y a 4 ans . Verrouillé . Cette question et ses …
J'ai une interface qui a une certaine quantité de fonctionnalités bien définies. Disons: interface BakeryInterface { public function createCookies(); public function createIceCream(); } Cela fonctionne bien pour la plupart des implémentations de l'interface, mais dans quelques cas, j'ai besoin d'ajouter de nouvelles fonctionnalités (comme peut-être intégrées dans une nouvelle méthode …
Comme je l'ai expliqué, le principe ouvert / fermé stipule qu'une fois le code écrit ne doit pas être modifié (à part les corrections de bugs). Mais si mes règles métier changent, ne devrais-je pas modifier le code implémentant ces changements? Je soupçonne que je ne comprends pas quelque chose …
J'ai une classe appelée Headingqui fait quelques choses, mais elle devrait également être capable de retourner l'opposé de la valeur de titre actuelle, qui doit finalement être utilisée via la création d'une nouvelle instance de la Headingclasse elle-même. Je peux avoir une simple propriété appelée reciprocalpour retourner l'en-tête opposé de …
J'ai un gros objet: class BigObject{ public int Id {get;set;} public string FieldA {get;set;} // ... public string FieldZ {get;set;} } et un objet spécialisé de type DTO: class SmallObject{ public int Id {get;set;} public EnumType Type {get;set;} public string FieldC {get;set;} public string FieldN {get;set;} } Personnellement, je trouve …
J'ai été aux prises avec un problème dans un projet Java sur les références circulaires. J'essaie de modéliser une situation réelle dans laquelle il semble que les objets en question sont interdépendants et doivent se connaître les uns les autres. Le projet est un modèle générique de jeu de société. …
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.