2)右击项目,选择“添加->新建项”,在模板中选择“接口”,名称为Observer.cs,单击添加按钮。
3)同样方法,添加Subject.CS接口。
4)双击Observer.CS文件,在接口里面定义一个方法: void sendNotify(string message);
5)双击Subject.CS文件,在接口里面定义一个方法: void registerInterest(Observer obs);
6)展开解决方案资源管理器,将FORM1.CS修改为Controller.CS,在弹出的信息框中,单击确定按钮,单击窗体,在窗体的属性对话框中,设置Text属性为:颜色Controller。修改后效果如下图1所示
图1
7)单击图上的红色圆圈的图标。
8)从左边的工具栏见图,拖一个GroupBox控件至窗体上,并拖动位置和设置大小效果,在属性对话框中,设置其Text属性为:颜色选择器,如图所示。
9)从工具箱拖三个radioButton控件,name属性分别设置为rbtnRed,rbtnGreen,rbtnBlue,Text属性分别设置为 “红色”,“绿色”,“蓝色”,并设置好位置,效果如图3所示。
10)切换至代码模式,添加using System.Collections引用,添加controller的父接口:Subject,并添加一个私有成员,效果见图4。
图4
11)定义单击单选按钮方法,代码如图5所示。
图5
12)实现Subject接口的registerInterest方法,如图6所示。
图6
13)右击项目,选择“添加->新建项”,在模板中选择“Window窗体”,名称为ViewList.cs,单击添加按钮。
14)将ViewList窗体的Text属性设置为:列表视图。
15)从工具栏中拖入ListBox控件,设置Name为lbColor。
16)切换至代码模式,添加ViewList的父接口:Observer。
17)实现接口的方法,见图8。
图8
18)定义Init方法,见图9。
图9
19)修改ViewList的构造函数,见图10。
图10
20)右击项目,选择“添加->新建项”,在模板中选择“Window窗体”,名称为ViewColor.cs,单击添加按钮。
21)将ViewColor窗体的Text属性设置为:颜色视图。
22)从工具栏中拖入PictureBox控件,设置Name为pbColor,设置BackColor为ActiveCaptionText。
23)切换至代码模式,添加using System.Collections引用,添加ViewColor的父接口:
Observer,并定义一些私有成员,效果见图11。
图11
24)定义PictureBox绘图方法,见图12。
图12
25)定义Init方法,见图13。
图13
26)实现接口的方法,见图14。
图14
27)修改ViewColor的构造函数,见图15