¿Da esto algún código que huela o viole los principios SÓLIDOS?¿Este método viola SOLID o tiene código de olor?
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();
}
Como se puede ver, mi Resumir() está ligado a las clases de implementación tales como humano, animal, etc.
huele? ¿Estoy violando LSP? ¿Algún otro principio SÓLIDO?
Gracias por su respuesta, pero no entiendo del todo el tecnicismo, ¿podría darme un ejemplo? :) gracias de nuevo, esto podría ser exactamente lo que necesito. Solo necesito ver un ejemplo de eso. –
hmm ... ¿el hecho de que lo haya aceptado significa que no necesita un ejemplo? Me encantaría intentar proporcionar uno, pero no estoy seguro de qué parte te está causando confusión. Si pudieras ser más específico, lo intentaré. – rmeador
Lo acepté como respuesta, porque respondió mi pregunta específica. Estoy trabajando en una solución basada en esto. Solo necesito un ejemplo para asegurarme de que entiendo el tecnicismo. La respuesta de Justin a continuación fue muy elaborada y útil, por lo que algo similar sería increíble. –