摘要:访问者模式的目的是要把处理从数据结构中分离出来,如果系统有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式是个不错的选择,因为访问者模式使的算法操作的增加变得容易。相反,如果系统的数据结构不稳定,易于变化,则此系统就不适合使用访问者模式了。 访问者模式结构:访问者角色(Visitor):
阅读全文
摘要:1.定义 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作 2.结构 Command:定义命令的接口,声明执行的方法 ConcreteCommand: 命令接口实现对象,是虚的实现,通过会持有接受者,并调用接受者的功能来完成命令要执行的操
阅读全文
摘要:1. 定义 运用共享技术有效地支持大量细粒度的对象 2. 代码结构 Flyweight: 享元接口,通过这个接口Flyweight 可以接受并作用于外部状态。通过这个接口传入外部的状态,在享元对象的方法处理中可能会使用这些外部的数据 ConcreteFlyweight: 具体的享元实现对象,必须可共
阅读全文
摘要:1.定义 定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 2.结构说明 Subject:目标对象,通常具有如下功能。 一个目标可以被多个观察者观察 目标提供对观察者注册和退订的维护 当目标的状态发生变化时,目标负责通知所有注册的、有效的观察者
阅读全文
摘要:1.定义 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作 2.结构 Client:客户端,调用自己需要的领域接口Target Target:定义客户端需要的跟特定领域相关的接口 Adaptee:已经存在的接口,通常能满足客户端的功能
阅读全文
摘要:1.定义 将抽象部分与它的实现部分分类,使它们都可以独立地变化 2.结构 Abstraction: 抽象部分的接口。维护一个实现部分对象的引用,抽象对象里面的方法,需要调用实现部分的对象离开完成 RefinedAbstraction: 拓展抽象部分的接口。定义跟实际业务相关的方法 Implement
阅读全文
摘要:1.定义 用一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 2.结构 Mediator:中介者接口。在里面定义各个同事之间交互需要的方法,可以是公共的通信方法 ConcreteMediator:具体中介者实现对象。它负责
阅读全文
摘要:1. 定义 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 2. 结构 Facade: 定义子系统的多个模块对外的高层接口,通常需要调用内部多个模块,从而把客户的请求代理给适当的子系统对象 模块:接受Facade对象的委派,真正实现功能
阅读全文
摘要:1. 定义 允许一个对象在其内部状态改变时改变它的状态。对象看起来似乎修改了它的类 2.结构 Context:上下文环境 State: 接口 ConcreteState: 具体实现状态处理类 3. 认识状态模式 3.1 状态和行为 所谓对象的状态,通常指的就是对象实例的属性的值,而行为指的就是对象的
阅读全文
摘要:1.定义 为其他对象提供一种代理以控制对这个对象的访问 2.代理模式的结构 Proxy:代理对象 Subject:目标接口 RealSubject: 目标对象 coding... 3.Java动态代理 Proxy InvocationHandler 4.何时使用代理模式 需要为一个对象在不同的地址空
阅读全文
摘要:1. 模板方法模式的功能 在于固定算法骨架,而让具体算法实现可扩展 2. 为何不是接口 通常在 既要约束子类的行为,又要为子类提供公共功能 的时候使用抽象类 3. 变与不变 变化部分通过接口或者抽象类,不变的部分抽象出来作为公共实现 4. 好莱坞法则 父类模板调用子类方法,由父类去找子类,而不是子类
阅读全文
摘要:1. 策略模式的定义 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化 2. 主要解决问题 当使用算法的客户和算法之间紧密耦合时,可以使用策略模式解决问题 3. 主要参与对象 Client 客户端 Context 上线文 Strategy 策略抽
阅读全文
摘要:1. 单一职责原则 Single Responsibility Principle 系统中每一个类都应该只有一个单独的职责 2. 里氏替换原则 Liskov Substitution Principle 任何父类出现的地方都可以用它的子类来替代 3. 依赖注入原则 Dependence Invers
阅读全文
摘要:1.适配器模式 类适配器 对象适配器 默认适配器模式 2.桥梁模式 将抽象化与实现脱耦,使得二者可以独立的变化 桥接:为被分离了的抽象部分和实现部分来搭桥 如何桥接:桥接在程序上就体现成了在抽象部分拥有实现部分的接口对象 谁来桥接的问题: 就是谁来负责创建抽象部分和实现部分的关系 3.组合模式 Co
阅读全文