Questions marquées «class-design»

Directives générales sur la façon de concevoir des classes avec les meilleures pratiques connues de l'industrie.

16
En utilisant le principe de responsabilité unique, qu'est-ce qui constitue une «responsabilité»?
Il semble assez clair que "Principe de responsabilité unique" ne signifie pas "une seule chose". Voilà à quoi servent les méthodes. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin dit que "les classes ne devraient …

9
Y a-t-il une "vraie" raison pour laquelle l'héritage multiple est détesté?
J'ai toujours aimé l'idée de prendre en charge l'héritage multiple dans une langue. Le plus souvent, c'est intentionnellement abandonné et le supposé "remplaçant" est une interface. Les interfaces ne couvrent tout simplement pas la même terre sur plusieurs héritages multiples, et cette restriction peut parfois conduire à plus de code …










3
Paramètres facultatifs ou constructeurs surchargés
J'implémente un DelegateCommand, et quand j'étais sur le point d'implémenter le ou les constructeurs, j'ai proposé les deux choix de conception suivants: 1: Avoir plusieurs constructeurs surchargés public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2: …

10
Pouvons-nous vivre sans constructeurs?
Disons que pour une raison quelconque, tous les objets sont créés de cette façon $ obj = CLASS :: getInstance (). Ensuite, nous injectons des dépendances à l'aide de setters et effectuons le démarrage de l'initialisation à l'aide de $ obj-> initInstance (); Y a-t-il de vrais problèmes ou situations …


2
Est-ce une bonne idée de fournir différentes signatures de fonction qui font la même chose?
Voici une classe C ++ qui est construite avec trois valeurs. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Tous les types de paramètres sont différents. Je pourrais surcharger le constructeur pour que l'ordre n'ait pas d'importance. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, …

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.