设计模式--tl;dr

工厂方法(Factory Method)

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

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

设计模式--tl;dr_第1张图片
工厂方法类图
单例(Singleton)

全局只有一个对象。

几种实现方式:

  • 饿汉式:static 成员变量,类加载时初始化
  • 懒汉式:Double Check Lock。懒加载
  • 静态内部类:
  • 枚举
    关于懒汉式、静态内部类的写法
模板方法(Template Method)

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

public void templateMethod() {
            doOp1();//sub ops
            doOp2();//sub ops
        }
设计模式--tl;dr_第2张图片
image.png
观察者(Observer)

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

设计模式--tl;dr_第3张图片
image.png
适配器(Adapter)

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

设计模式--tl;dr_第4张图片
image.png
装饰者(Decorator)

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

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

构建者(Builder)

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

迭代器(Iterator)

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

设计模式--tl;dr_第5张图片
image.png
组合(Composite)

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

设计模式--tl;dr_第6张图片
image.png
策略(Strategy)
访问者(Visitor)

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

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

设计模式--tl;dr_第7张图片
image.png
桥接(Bridge)

P.S. 招聘简讯

美团网诚招Android、iOS、Java工程师。坐标北京望京。有意者可发简历至:[email protected]

你可能感兴趣的:(设计模式--tl;dr)