摘要:
第二十九章 状态模式(State Pattern)
意图
状态模式的目的是使对象在不同的状态下改变其行为,可以理解为在不同的上下文中,相同的动作导致不同的结果(或导致动作的目的不同)。
使用场合
1.一个对象的行为取决于其运行的状态并且运行时刻根据状态改变自己的行为,如TCP链接对象载Listening、Established盒Closed状态下,对O
pen、Close和Accept执行不同的操作。
...... 阅读全文
摘要:
第二十八章 备忘录模式(Memonto Pattern)
意图
在不破坏封装性的前提条件下,捕获一个对象的内部状态,然后在该对象之外保存这个状态。以后在需要的时候可以将该对象恢复到原先保存的状态。
结构
1.Memonto(备忘录):保存Originator(原发器)对象的内部状态,Originator根据需要决定保存哪些内部状态,防止自身以外的其它对象访问备忘录。备忘录实际上是由两个接口,其中Caretaker(管理者)只能看到备忘录的窄接口,即它只能将备忘录传递给其他对象;而原发器可以看到一个宽接口,允许他访问回到原先状态所需的所有数据,理想的情况是只允许生成原发器访问本备忘录的内部状态。
...... 阅读全文
摘要:
第二十七章 迭代器模式(Iterator Pattern)
意图
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
使用场合
1.访问一个聚合对象的内容而无需暴露他的内部表示。
2.支持对聚合对象的多种遍历。
...... 阅读全文
摘要:
第二十五章 命令模式(Command Pattern)
意图
将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化。并对请求进行排队或记录请求日志。
使用场合
行为需要扩充:将命令作为对象处理,新的行为可以扩充子类完成。
命令需要重做:需要UnDo“撤销”和ReDo“重做”。
...... 阅读全文
摘要:
如果一个男人真的爱你,他的手机会为你24小时开机,在你最需要他的时候可以随时找到他,因为他爱你,所以会时时担心你。。。。 如果一个男人爱你,他会很自豪的告诉他的朋友与家人你是他最爱的女人,当然并不是时时挂在嘴上,而是用一种行动去告诉别人,你是他最爱的女人!因为有了你他觉得很骄傲,无论你是不是真的很优秀。。。如果一个男人真的爱你,他会把除了工作之外的很多时间都给你,当然会偶尔和朋友去聚会,因为他想... 阅读全文
摘要:
第二十四章 职责链模式(ChainofResposibility)
意图
是对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直道一个对象处理它为止。
使用场合
1.有多个对象可以处理一个请求,那个对象处理该请求在运行的时候自动确定。
2.希望在不明确制定接收者的情况下,向多个对象中的一个提交一个请求。
...... 阅读全文
摘要:
第二十二章 享元模式(Flyweight Pattern)
意图
运用享元技术有效的支持大量细粒度的对象,共享时指在同一个场景中被多次引用而不发生变化,即共享对象的是无状态并与上下文无关的。
...... 阅读全文
摘要:
远程访问的类 public class HelloServer:MarshalByRefObject { public string MyName; public HelloServer() { MyName = ""; Console.WriteLine("HelloWorld is builde... 阅读全文
摘要:
第二十一章 组合模式(Composite Pattern)
意图
将对象组成树形结构来表示“部分——整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
使用场合
表达式:四则运算、逻辑运算及SQL语句等都可以使用组合模式。
命令:一个命令经常可以由若干子命令组成。
...... 阅读全文
摘要:
第十九章 装饰模式(Decorator Pattern)
意图
不使用创建子类的方法动态的增加类的功能。
结构
模式的参与者如下:
Compeonent:定义一个对象接口,可以动态添加这些对象的功能。
ConcreteComponent:定义一个对象,可以动态的为其添加一些功能。
...... 阅读全文