设计模式--tl;dr

2017-07-27  本文已影响0人  BarbaraBear
工厂方法(Factory Method)

父类不知道需要创建的具体对象,把对象的创建交给子类去做。

一般情况下是在工厂的其他方法中(otherOps),需要用到Product的实例。而这个实例的具体类型又会因为不同的子类有不同的要求。生成Product的方法一般为protected的,不被外部直接使用。

工厂方法类图
单例(Singleton)

全局只有一个对象。

几种实现方式:

模板方法(Template Method)

父类中定义方法调用的步骤结构,步骤的具体实现由子类决定

public void templateMethod() {
            doOp1();//sub ops
            doOp2();//sub ops
        }
image.png
观察者(Observer)

实现对象间的联动,或者是通信

image.png
适配器(Adapter)

将一种类型或者接口转换成另外一种类型,功能复用

image.png
装饰者(Decorator)

动态增加原有方法的功能。是一种AOP的实现方式

类图有好几种变形,具体可以查看这篇文字。适配器模式是一种通过组合而非继承的方式,动态实现组合式功能的好办法。

构建者(Builder)

分步构建对象,步骤之间没有顺序依赖关系。

迭代器(Iterator)

提供一个统一的顺序访问集合中元素的接口,而不需要关心集合的具体实现。

image.png
组合(Composite)

为树形结构组织的各个节点(叶子、非叶子),提供统一的访问接口。

image.png
策略(Strategy)
访问者(Visitor)

一个对象结构中定义了一组基本操作。在不改变对象的前提下,定义新的操作。

访问者模式的基本原理:回调。在调用对象新操作时,实际上回调到访问者的实现方法。实现方法可以拿到对象结构的数据,来进行基本操作的组装。所以说新操作是定义在了访问者的回调实现方法中,不会影响原有对象结构。

image.png
桥接(Bridge)

P.S. 招聘简讯

美团网诚招Android、iOS、Java工程师。坐标北京望京。有意者可发简历至:xiongzhanyun@meituan.com

上一篇下一篇

猜你喜欢

热点阅读