桥接模式
本质是两组抽象类的组合,如果一个接口A聚合另一个抽象类B,A与B有很多具体实现,那么这就是桥接模式。
享元模式
本质是聚合,轻量级的对象池,必定结合工厂模式使用。
解释器模式
特点是语法解析,结构与组合模式相同,额外多一个环境角色。
状态模式
本质是封装,如果一个类内部有状态,状态改变行为也改变,那么这个就是状态模式。
类图与策略模式一致。
访问者模式
作为迭代器访问不同类的补充,如果一个类A以另外一个类B为参数提供一个接口accept,这个接口以A为参数调用B的一个方法visit,这个方法其实是调用A的方法fun,那么这个就是访问者模式。
将依赖接口子类的具体方法的操作封装成访问者。
备忘录模式
本质是封装,如果概念上将一个类的状态封装成另一个类,并提供设置,导出状态的接口,那么这个就是备忘录模式。
门面外观模式
本质是委托封装,如果一个类组合封装了其它类,并提供一个高层次的接口,那么这个就是外观模式。
观察者模式
本质是一对多的依赖,如果批量触发依赖的方法,形成概念上的通知,那么就是观察者模式。当形成广播链的时候,与责任链模式的区别之一是消息随时更改。
组合模式
本质是委托,特征是树形结构,如果一个树枝类继承一个接口,包含委托,委托的是接口,具体可能是这种类或是继承同一个接口的其它子叶子类,形成树形结构,那么就是组合模式。
迭代器模式
如果要改类继承一个类,实现一个接口,而接口的实现都是靠调用父类的实现,那么这个就是类适配器模式,如果不使用继承而使用委托,接口的实现都是靠调用委托实现,那么这个就是对象适配器模式。
适配器模式
如果要改类继承一个类,实现一个接口,而接口的实现都是靠调用父类的实现,那么这个就是类适配器模式,如果不使用继承而使用委托,接口的实现都是靠调用委托实现,那么这个就是对象适配器模式。
策略模式
本质是委托,如果一个类委托一个接口,并且互换这个接口委托,那么这个就是策略模式。
装饰模式
本质是委托,与代理模式不同的是,委托的是接口,实现在子类,最终价值表现在这个类的多个子类上。
责任链模式
本质是委托,与代理模式有共通之处,区别在于委托是在接口层面表现的,委托给接口,代理模式是在子类层面委托,委托给另一个子类。概念上是关注的点不同,在于链上,通常只有一个接口是这个模式的体现。
命令模式
本质是命令的封装,隔离调用者和执行者。如果功能的实现包含动作封装、接收动作的角色,以及最终处理的角色,那么这就是命令模式。
对比策略模式,多一个接受者角色,关注点不同,关注解耦。
中介者模式
本质是耦合的处理。如果多个类相互交互是通过星型模式来实现的,那么这个就是中介者模式。
代理模式
本质是委托。如果实现某个接口,而接口的具体实现全部由委托完成,那么这就是代理模式。
原型模式
本质是对象的复制,如果对象的复制是由其本身的一个方法提供的,这就是原型模式。
建造者模式
本质是多参数默认值不确定时的构造问题,如果剥离构造参数至一个单独类,将构造过程的参数设置独立出来由这个类去处理,这就是建造者模式。
与工厂模式相比,建造者模式关注细节,工厂关注整体。
模板模式
本质是多态,如果利用多态实现父类“调用”子类的实现,那么这就是模板模式。
网友评论