Многоадресные делегаты реализуют шаблон Builder?

59
6

Является ли использование делегатов многоадресной рассылки подходящим способом реализации шаблона проектирования Builder?

Причина, по которой я спрашиваю, заключается в том, что моя концепция/понимание шаблона Builder представляет собой набор методов, которые могут быть объединены/перегруппированы как блоки LEGO. Таким образом, у вас могут быть следующие методы:

void Shave(int StrokeCount) { ... }
void FeedTheDog(int Cups) { ... }
void MakeCoffee(int Cups) { ... }
void Shower(int Temperature) { ... }

... которые могут быть смешанно-согласованы/LEGO'd вместе, чтобы однажды утром вы позвонили:

Shower()
FeedTheDog()
MakeCoffee()

... еще одно утро:

Shower()
Shave()
FeedTheDog()
MakeCoffee()

... еще одно утро:

MakeCoffee()
FeedTheDog()
Shower()

(и т.д. и т.д. ad infinitum ad nauseum)

И так как делегаты многоадресной рассылки позволяют добавлять такие же методы подписи к экземпляру делегата, и они будут запускаться в том порядке, в котором вы их добавляете, похоже, здесь есть семантическая связь (в моем сознании/в моем текущем способе мышления, так или иначе). Возможно, я ошибаюсь, поэтому я спрашиваю.

спросил(а) 2012-07-11T16:29:00+04:00 8 лет, 4 месяца назад
1
Решение
59

Я не вижу преимущества использования делегатов многоадресной рассылки для шаблона Builder, если вы не хотите отложить выполнение метода по какой-либо причине. У меня никогда не было этого требования, но не сказать, что это не может быть полезно. Если у вас был сценарий, когда один класс отвечал за "приготовление рецепта", а другой за "приготовление рецепта", я думаю, это может быть полезно. Однако даже тогда вы ограничились бы только использованием методов, имеющих одну и ту же подпись. Это только мое мнение.

ответил(а) 2012-07-11T20:23:00+04:00 8 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема