首先说一下哈,后来的一些模式,真的是核心就没有那么多,UML一看就知道怎么编写,所以相对前面的日志则篇幅比较短
在模式结束之后上UML以及相关代码
引用大佬的blog:http://blog.csdn.net/lovelion/article/details/1751721315.命令模式:
命令模式可以将请求发送者和接受者完全解耦,发送者与接受者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求.
命令模式 :将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化
命令模式的核心点:
1.抽象命令的接口或抽象类
2.每个具体的命令类中会持有一个进行实际操作的Receiver,当命令执行的功能调用Receiver的具体方法
命令模式的演化 --->带有撤销操作与恢复操作功能.日志功能,宏命令功能
16.迭代器模式
某个类以成员变量的形式出现在另一个类中,二者是关联关系;某个类以局部变量的形式出现在另一个类中,二者是依赖关系。
不同的集合[不同的数据结构实现]遍历方式不一致,如何能采用统一的遍历方式实现
将聚合类中负责便利数据的方法提取出来,封装到专门的类中,实现数据存储和数据遍历分离,无需暴露聚合类的内部属性即可对其进行操作
迭代器模式:
提供一种方法来访问聚合对象秘而不用暴露这个对象的内部标识,其别名为游标(Cursor)
抽象迭代器:定义了访问和遍历元素的接口,声明了用于便利数据元素的方法(next/hashNext[first/currentItem(这两个不是必须)])
17.中介者模式
用一个中介对象来封装一系列的对象交互,中介者是个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式
中介者的核心在于中介者类的引入,在中介者模式中名终结者承担了两方面的职责
1.(结构上起到)中转作用 各个同事对象不需要显式引用其他同事,当需要和其他同事进行通信时,可通过中介者来实现间接调用
2.(行为上起到)协调作用 中介者可以更近一步的对同事之间的关系进行封装,同事可以一致的和中介者进行 交互,而不需要指明中介者需要具体怎么做,中介者根据封装在自身内部的协调逻辑,
对同事的请求进行进一步处理,将同事成员之间的关系行为进行分离和封装...
中介者有两个层次 一个是中介者相关 一个中介者会关联很多个同事,但会有多功能不同的中介者
另一个则是同事...同事有很多个/类/种,而每个同事则持有一个中介者的引用