Domande taggate «class-design»

Linee guida generali su come progettare le lezioni con le pratiche di settore più note.

16
Quando si utilizza il principio di responsabilità singola, cosa costituisce una "responsabilità?"
Sembra abbastanza chiaro che "Principio della singola responsabilità" non significa "fa solo una cosa". Ecco a cosa servono i metodi. 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 afferma che "le lezioni dovrebbero avere solo …

9
C'è qualche "vera" ragione per cui l'ereditarietà multipla è odiata?
Mi è sempre piaciuta l'idea di avere l'ereditarietà multipla supportata in una lingua. Molto spesso però è stato intenzionalmente dimenticato, e la presunta "sostituzione" sono interfacce. Le interfacce semplicemente non coprono tutto lo stesso terreno dell'ereditarietà multipla, e questa restrizione può occasionalmente portare a più codice della caldaia. L'unica ragione …










3
Parametri opzionali o costruttori sovraccarichi
Sto implementando un DelegateCommand, e quando stavo per implementare il / i costruttore / i, ho escogitato le seguenti due scelte progettuali: 1: Avere più costruttori sovraccaricati 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
Possiamo vivere senza costruttori?
Diciamo per qualche motivo che tutti gli oggetti sono creati in questo modo $ obj = CLASS :: getInstance (). Quindi iniettiamo dipendenze usando setter ed eseguiamo l'inizializzazione iniziale usando $ obj-> initInstance (); Ci sono problemi o situazioni reali, che non possono essere risolti, se non useremo affatto i …


2
È una buona idea fornire firme di funzioni diverse che facciano la stessa cosa?
Ecco una classe C ++ che viene costruita con tre valori. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Tutti i tipi di parametri sono diversi. Potrei sovraccaricare il costruttore in modo che l'ordine non abbia importanza. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, …

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.