public static void Extended() { // Step1.定义中介者对象 SubConcreteMediator mediator = new SubConcreteMediator(); // Step2.定义同事对象 Button addButton = new Button(); List list = new List(); ComboBox cb = new ComboBox(); TextBox userNameTextBox = new TextBox(); Label label = new Label(); addButton.SetMediator(mediator); list.SetMediator(mediator); cb.SetMediator(mediator); userNameTextBox.SetMediator(mediator); label.SetMediator(mediator); mediator.addButton = addButton; mediator.list = list; mediator.cb = cb; mediator.userNameTextBox = userNameTextBox; mediator.label = label; // Step3.点击增加按钮 addButton.Changed(); Console.WriteLine("---------------------------------------------"); // Step4.从列表框选择客户 list.Changed(); }
static void Main(string[] args) { // 1. MediatorSample { /* * ConcreteMediator mediator = new ConcreteMediator(); * Button btn = new Button(); * List list = new List(); * ComboBox comboBox=new ComboBox(); * TextBox tb = new TextBox(); * * btn.SetMediator(mediator); * list.SetMediator(mediator); * comboBox.SetMediator(mediator); * tb.SetMediator(mediator); * * mediator.btn=btn; * mediator.list = list; * mediator.comboBox = comboBox; * mediator.textBox=tb; * * btn.Changed(); * System.Console.WriteLine("----------------------------------"); * list.Changed(); */ } // 2. { SubConcreteMediator submediator = new SubConcreteMediator(); Button btn = new Button(); List list = new List(); ComboBox comboBox = new ComboBox(); TextBox tb = new TextBox(); Label label = new Label(); btn.SetMediator(submediator); list.SetMediator(submediator); comboBox.SetMediator(submediator); tb.SetMediator(submediator); label.SetMediator(submediator); submediator.btn = btn; submediator.list = list; submediator.comboBox = comboBox; submediator.textBox = tb; submediator.label = label; btn.Changed(); System.Console.WriteLine("----------------------------------"); list.Changed(); } // 3. UnitedNations // Mediator => MediatorUN // ConcreteMediator => WTO, WHO // Colleague => Country // ConcreteColleague => China, USA, Russia // 4. Windows UI // Mediator/ConcreteMediator => WindowsForm // Colleague => Panel // ConcreteColleague => TextPanel, ListPanel, GraphicPanel // 5. Temperature // Mediator => Control // ConcreteMediator => CtrlButtonUp, CtrlButtonDown, CtrlBar // Colleague => TemperatureDashboard // ConcreteColleague => TemperatureFahrenheit, TemperatureDashboardCelsius Console.ReadLine(); }