【发布时间】:2011-04-07 22:23:51
【问题描述】:
这是否会产生任何代码异味或违反 SOLID 原则?
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();
}
如您所见,我的 Summarize() 与 Human、Animal 等实现类绑定。
此代码是否违反 LSP? (还有其他 SOLID 原则吗?)
【问题讨论】:
标签: c# oop design-patterns