Re[8]: Панель задач для MDI окошек
От: _FRED_ Черногория
Дата: 06.08.09 10:51
Оценка:
Здравствуйте, 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 и на этом сайте достаточно информации, а во всё интернете и не счесть вовсе. Изучайте. Сравнивайте. Появятся конкретные вопросы — велкам в архитектуру.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.