设计模式--tl;dr

工厂方法(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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 场景问题# 1.1 扩展客户管理的功能## 考虑这样一个应用:扩展客户管理的功能。 既然是扩展功能,那么肯定是...
    七寸知架构阅读 2,973评论 1 58
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,990评论 1 15
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,219评论 30 472
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,895评论 2 17