Ho un'interfaccia Serializer con metodi serialize e isSerializerFor . Ho creato una prima implementazione di questo utilizzando TDD, e ho finito con un bel caso di test pulito che copriva completamente una buona implementazione pul...
Diciamo che ho una classe chiamata Country e due sottoclassi chiamate AI e Player. La classe Paese ha un numero di metodi virtuali per consentire comportamenti specifici del giocatore o specifici dell'IA.
Voglio che il giocatore possa cambiar...
Diciamo che abbiamo 4 classi A, B, C, D dove: A è una superclasse di entrambi B e C e C è una superclasse di D. Suppongo che, in un diagramma, dovrebbe assomigliare a questo:
A
/ \
B C
\
D
Inoltre, la classe A imple...
So cos'è l'SRP, ma sto mettendo in discussione il mio attuale design di un oggetto che io chiamo un'entità. Di seguito è riportata una foto del design a cui mi riferisco. Se spostassi il codice dagli oggetti GeometricInformation e TransactionInf...
Ultimamente ho letto molto su alcuni concetti chiave di JS e l'ereditarietà è un po 'confusa.
Ecco i metodi che conosco:
// Base class
function Parent(foo) {
if (foo === undefined) {
throw new TypeError('foo is undefined');
}
thi...
Ho un'applicazione che ha bisogno di registrare le comunicazioni con gli utenti su diversi supporti: e-mail, SMS, voce, annunci sul sito web, ecc. in un database tradizionale.
Ho preso in considerazione 3 approcci per modellare questi diversi...
Nel capitolo di JavaScript professionale per sviluppatori Web su OOP, Nicholas Zachas descrive un modello di ereditarietà JavaScript che si riferisce a eredità di combinazione . L'idea di base è che i metodi siano ereditati tramite concatenam...
Come regola generale, la generalizzazione viene utilizzata solo in circostanze specifiche. Ad esempio, quando possiamo dire che X è letteralmente una sottoclasse di Y. Quindi, possiamo tranquillamente dire che un cavallo è una sottoclasse di mam...
Codice completo (2 ° ed.) dice:
"Se passi un parametro a una routine, usalo. Se non lo stai usando, rimuovi i parametri dall'interfaccia di routine."
Tuttavia, in passato, a volte dovevo farlo. Considera il seguente esempio:
Supponiamo...
Qualcuno può spiegarmi quale sia il motivo di sovrascrivere le implementazioni della classe base (se non è astratto), perché non è una mossa etica modificare le caratteristiche della classe genitore secondo i desideri delle classi derivate. Il m...