1. Может ли пользовательский интерфейс управляться несколькими
Ведущие как это?
Да
2. Если несколько докладчиков
отделены или они могут общаться
непосредственно друг с другом, как показано
здесь
То, как я справляюсь с этим, у меня есть фреймворк, похожий на этот
Когда происходит событие, UI_Object обрабатывает событие, создавая и запуская объект Command. Каждый UI_Object реализует интерфейс просмотра, найденный в UI_Views, и регистрируется в UI_View. Командные объекты могут получить доступ к зарегистрированному объекту пользовательского интерфейса в UI_View через интерфейсы.
Например, в одном из моих приложений для резки металла есть экранный элемент, называемый HOLD, который содержит все детали, которые не были размещены на листе металла для резки. Часть может попасть в трюм несколькими способами. Загружен из файла детали, созданного редактором форм, созданного на нашем экране CAD или взятого из листа металла.
Каждая из этих операций инкапсулирована в отдельные объекты Command, реализующие шаблон проектирования Command. Когда объект команды выполняется, он вызывает.
CuttingScreen.Refresh
CADScreen.Refresh
ShapeEditor.Refresh
Каждый из них обновляет соответствующий экран, обновляя удержание.
Теперь я могу добавить метод в интерфейс моего приложения. MyCuttingApplication.HoldRefresh, который в свою очередь вызовет все три обновления.
Но важным моментом является то, что ваше представление вызывает команду, которая использует интерфейс, реализованный этим представлением, для обновления. Что объект вида регистрируется на нижнем уровне.