美文网首页
设计模式--tl;dr

设计模式--tl;dr

作者: BarbaraBear | 来源:发表于2017-07-27 15:45 被阅读0次
    工厂方法(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

    相关文章

      网友评论

          本文标题:设计模式--tl;dr

          本文链接:https://www.haomeiwen.com/subject/cdsukxtx.html