Ciò conferisce a qualsiasi codice odore o violazione dei principi SOLID?Questo metodo viola SOLID o ha odore di codice?
public string Summarize()
{
IList<IDisplayable> displayableItems = getAllDisplayableItems();
StringBuilder summary = new StringBuilder();
foreach(IDisplayable item in displayableItems)
{
if(item is Human)
summary.Append("The person is " + item.GetInfo());
else if(item is Animal)
summary.Append("The animal is " + item.GetInfo());
else if(item is Building)
summary.Append("The building is " + item.GetInfo());
else if(item is Machine)
summary.Append("The machine is " + item.GetInfo());
}
return summary.ToString();
}
Come si può vedere, il mio Riassumere() è legata a classi di implementazione, come umano, Animale, ecc
Ha odore? Sto violando LSP? Qualche altro principio SOLID?
Grazie per la tua risposta, ma non capisco del tutto la tecnicità, quindi potresti darmi un esempio? :) grazie ancora, questo potrebbe essere esattamente quello di cui ho bisogno. Ho solo bisogno di vederne un esempio. –
hmm ... il fatto che tu l'abbia accettato significa che non hai bisogno di un esempio? Sarei felice di provare a fornirne uno, ma non sono sicuro di quale parte ti stia causando confusione. Se potessi essere più specifico, farò un tentativo. – rmeador
L'ho accettato come risposta, perché ha risposto alla mia domanda specifica. Sto lavorando a una soluzione basata su questo. Ho solo bisogno di un esempio per assicurarmi di capire la tecnicità. La risposta di Justin di seguito è stata molto elaborata e utile, quindi qualcosa di simile sarebbe fantastico. –