摘要: 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 中介者模式很容易在系统中应用,也很容易在系统中误用。当系统出现了‘多对多’交互复杂的对象群时,不要急于使用中介者模式,而要先反思你的系统在设 阅读全文
posted @ 2018-03-03 15:22 庭前竹 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 优点: 1、当客户提交一个请求时,请求是沿着链传递直至有一个ConcreteHandler对 阅读全文
posted @ 2018-03-03 15:05 庭前竹 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 优点: 1、能较容易地设计一个命令队列; 2、在需要的情况下,可以较容易地将命令记入日志; 3、允许接收请求的一方决定是否要否决请求; 4、可以容易地实现对 阅读全文
posted @ 2018-03-03 14:51 庭前竹 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 合成/聚合复用原则(CARP),尽量使用合成/聚合,尽量不要使用类继承。 优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。 桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化 阅读全文
posted @ 2018-03-03 12:03 庭前竹 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 单列模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。 在类内部实 阅读全文
posted @ 2018-03-03 11:42 庭前竹 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 使用场景: 1、需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,就应该考虑使用迭代器模式。 2、需要对聚集有多种方式遍历时,可以考虑使用迭代器模式,为遍历不同的聚集结构提供如开始、 阅读全文
posted @ 2018-03-03 11:26 庭前竹 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 透明方式:在Component中声明所有用来管理子对象的方法,其中包括Add、Remove等。这样实现Component接口的所有子类都具备了Add和Remov 阅读全文
posted @ 2018-03-03 11:15 庭前竹 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 把要保存的细节给封装在Memento中,如果要更改保存的细节也不用影响客户端。 优点: 1、有时一些对象的内部信息必须保存在对象以外的地方,但是必须由对象 阅读全文
posted @ 2018-03-03 10:59 庭前竹 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 使用场景: 当系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望 阅读全文
posted @ 2018-03-03 10:42 庭前竹 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 状态模式(State),当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象的状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 优点: 将与特定状态相关的行为局部化,并且将不同 阅读全文
posted @ 2018-03-03 10:27 庭前竹 阅读(101) 评论(0) 推荐(0) 编辑