Questions marquées «solid»

Mnémoniques pour un ensemble de principes de conception: responsabilité unique, ouvert-fermé, substitution Liskov, ségrégation d'interface, inversion de dépendance






5
Où mettre des constantes et pourquoi?
Dans nos applications pour la plupart volumineuses, nous n'avons généralement que quelques emplacements pour les "constantes": Une classe pour l'interface graphique et les constantes internes (titres de page d'onglet, titres de zone de groupe, facteurs de calcul, énumérations) Une classe pour les tables et colonnes de base de données (cette …


9
Concevoir une classe pour prendre des classes entières comme paramètres plutôt que comme propriétés individuelles
Disons, par exemple, que vous avez une application avec une classe largement partagée appelée User. Cette classe expose toutes les informations sur l'utilisateur, son identifiant, son nom, les niveaux d'accès à chaque module, le fuseau horaire, etc. Les données utilisateur sont évidemment largement référencées dans tout le système, mais pour …
30 java  c#  design  solid 




12
SOLIDE vs éviter l'abstraction prématurée
Je comprends ce que SOLID est censé accomplir et je l'utilise régulièrement dans des situations où la modularité est importante et ses objectifs sont clairement utiles. Cependant, deux choses m'empêchent de l'appliquer de manière cohérente dans ma base de code: Je veux éviter une abstraction prématurée. D'après mon expérience, tracer …



5
Les cas spéciaux avec repli violent-ils le principe de substitution de Liskov?
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 …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.