0

Медиатор, концептуальный пример c#

Account il y a 1 an 0
Видится иная связь между посредником и компонентами (коллегами), а именно раз мы говорим в примере что возможна агрегация посредника и компонентов (а их как правило много), то с'ассоциировав коллекцию компонентов с посредником, задача "навязывания" посредника компонентам в конструкторе (this.Component[i].SetMediator(this)) станет нетривиальной задачей. 
Посему, проще в поведение медиатора добавить метод IMediator.AddComponent(BaseComponent) - в любом случае посредник нужен именно ДЛЯ компонентов и не должен без них существовать, а в
конструкторе базового компонента проще добавить  IMediator.AddComponent(this) - тогда каждый компонент будет ассоциирован с посредником, тем более что посредник в каждом компоненте уже агрегирован.