Я читал о шаблонах дизайна и хотел некоторую перспективу. Рассмотрим следующее:
Dim objGruntWorker as IGruntWorker
if SomeCriteria then
objGruntWorker = new GoFor()
else if SomeOtherCriteria then
objGruntWorker = new Newb()
else if SomeCriteriaAndTheKitchenSink then
objGruntWorker = new CubeRat()
end if
objGruntWorker.GetBreakfast()
system.threading.thread.sleep(GetMilliSecondsFromHours(4))
objGruntWorker.GetLunch()
Приведенный выше код растет каждый раз, когда возникают новые критерии. Я видел такой код повсюду, и по незнанию сам написал сам. Как это можно решить? Имеет ли этот вид анти-шаблона более "формальное" имя? Спасибо за вашу помощь!
Изменить: Еще одно соображение: я хочу, чтобы не перекомпилировать существующие реализации IGruntWorker
просто для добавления новой реализации.