1、出现原因在软件系统中,有时候会面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂的对象的各个部分可能面临着剧烈的变化,但是把他们组合在一起的算法很稳定。提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求的改变而改变2、意图:将复杂对象的构建与其表示相分离(客户不关心这个复杂对象产品内部是怎么创建的),使得同样的构建工程可以创建不同的表示。3、结构图4、现实的简易的例子1、客户找到包工头,要求建一个房子,2、包工头找到不同的建筑队(Builder)来建筑房子的每个部分,建好房子后,交付给客户3 Read More
posted @ 2014-02-27 23:23 小小gogo Views(1891) Comments(0) Diggs(1) Edit
1、什么是委托,这里就不做介绍了,如果想了解可以查看博客:http://www.cnblogs.com/xiaoxiaogogo/p/3571494.html下面开始对事件进行介绍1、定义事件以及事件的编译原理首先定义事件对应的委托:1 public delegate void ThreeClickEventDel();然后对应事件变量:(其实就是在委托前面加一个event)public event ThreeClickEventDel ThreeClickEvent;反编译之后:是:一个“私有委托”和两个“公有”的“add”和“remover”方法1)因为是私有委托:所以只有类的内部可以调用 Read More
posted @ 2014-02-27 16:38 小小gogo Views(775) Comments(1) Diggs(1) Edit
1、委托的声明和编译原理声明委托:1 delegate void Translate(string str);通过反编译之后可得下面代码 private sealed class Translate:System.MulticastDelegate//就是一个多播委托 { public Translate(object o, Method m) { }//(实现委托方法),隐性传进来的 o 就是 当前类的 this对象,第二个参数是传进来的事件 public void Invoke(string str) { }//实现 委托的方法(向委托事件里面 传... Read More
posted @ 2014-02-27 14:48 小小gogo Views(2177) Comments(4) Diggs(4) Edit