Điều này có cho bất kỳ mã nào có mùi hoặc vi phạm nguyên tắc SOLID không?Phương pháp này có vi phạm RẮN hay có mùi mã không?
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();
}
Như bạn thấy, Tóm tắt của tôi() được gắn với các lớp học thực hiện như con người, động vật, vv
Liệu nó có mùi? Tôi có vi phạm LSP không? Bất kỳ nguyên tắc SOLID nào khác?
Cảm ơn bạn đã trả lời, nhưng tôi không hoàn toàn hiểu được tính kỹ thuật, vì vậy bạn có thể cho tôi một ví dụ về nó không? :) cảm ơn một lần nữa, điều này có thể chính xác những gì tôi cần. Tôi chỉ cần xem một ví dụ về nó. –
hmm ... thực tế là bạn chấp nhận nó có nghĩa là bạn không cần một ví dụ? Tôi rất vui khi cố gắng cung cấp một cái, nhưng tôi không hoàn toàn chắc chắn phần nào khiến bạn bối rối. Nếu bạn có thể cụ thể hơn, tôi sẽ thử. – rmeador
Tôi chấp nhận nó như một câu trả lời, bởi vì nó trả lời câu hỏi cụ thể của tôi. Tôi đang làm việc trên một giải pháp dựa trên điều này. Tôi chỉ cần một ví dụ để đảm bảo rằng tôi hiểu được tính kỹ thuật. Câu trả lời của Justin dưới đây rất phức tạp và hữu ích, vì vậy một cái gì đó tương tự như nó sẽ là tuyệt vời. –