Здравствуйте, mrjeka, Вы писали:
_FR>>Если вызов метода Add не требуется для решения задачи топикстартера, то вызвать его можно как угодно.
M>У топикастера тулбар с кнопками общий для всех дочерних окон.
Сведения достоверные? Шар протирали?
M>Вот честно говоря не понятно. Допустим есть интерфейс
M>public interface IBaseForm
M>{
M>void Add();
M>void Edit();
M>void Delete();
M>}
M>каждая дочерняя форма наследует этот интерфейс.
Это даже не ужас. Это Ужас-ужас-ужас.
M>В главной форме есть коллекция Collection<IBaseForm> childForms
Если мы говорим о Windows.Forms, то у формы уже есть
Form[] MdiChildren и другого не надо.
M>При вызове соответствующих операций мне требуется просто найти активный chid в этой коллекции и вызвать у него метод
M>При этом нет необходимости думать, если ли он у него или нет.
С развитием приложения на тулбаре появляется десяток-другой кнопок, в интерфейсе такое же количество методов. Так же увеличивается и количество форм, реализующих интерфейс. Допустим так же до десятка или даже нескольких. Чего будет стоить добавление нового метода в такой интерфейс сможете сами представить?
При вашем подходе каждая форма знает обо всех командах (в том числе и о тех, что ей не нужны), в то время как гибким и расширяемым решением является то, при котором форма знает лишь о тех командах, которые ей нужны.
M>А если вызывать "как угодно", то насколько это удобно?
По реализации паттерна Command и на этом сайте достаточно информации, а во всё интернете и не счесть вовсе. Изучайте. Сравнивайте. Появятся конкретные вопросы — велкам в архитектуру.