美文网首页
<读书笔记>设计模式综合(1):引子--模板方法

<读书笔记>设计模式综合(1):引子--模板方法

作者: 貘鸣 | 来源:发表于2017-12-21 13:04 被阅读3次

    首先引入痛点: 重复代码, 包括字面上的重复, 或者是逻辑层面上的重复(比如功能).

    故需要时刻记住: DRY. Don't Repeat Yourself.

    模板方法, 就是为了解决重复代码问题而出现的.

    1 简介

    在 OOP 中, 重用代码的一个基本手段就是继承, 以及组合.

    利用继承的方式, 可以把相同的逻辑放到父类中, 子类实现自己特定的功能即可.

    而在某些情况下, 父类往往对外提供接口, 隐藏子类细节. 而接口的实现就可以针对不同的子类有不同的实现.

    若在父类中定义了一个方法, 这个方法来决定算法的执行结构, 而具体的算法实现根据不同的子类有所不同, 这样的方法就是模板方法.

    也即: 动作执行流程不变, 但流程中的组成细节是根据不同的子类有所不同.

    利用模板方法的时候, 过渡地添加子类会造成子类泛滥问题. 故有时可以利用回调来替换掉子类实现. 比如执行流程中的某个子动作是根据不同子类有所不同, 则可以把这个动作利用回调暴露给外界去处理.

    2 意图

    实际介绍上面的内容, 仅为引出一个道理: 人总是需要站在一个更高的角度来看问题, 才能不断提高, 否则一个人琢磨再多, 可能也只是前人解决过的无数问题中的一个.

    故学习设计模式之前, 先来完整了解一下所谓的 "6 大设计原则", 设计模式就是依据这些总体原则构造出来的:

    1. 单一职责原则 (SRP)
    2. 里式替换原则 ()
    3. 依赖倒置原则 (IOC)
    4. 接口隔离原则 ()
    5. 迪米特法则 ()
    6. 开放封闭原则 (OCP)

    相关文章

      网友评论

          本文标题:<读书笔记>设计模式综合(1):引子--模板方法

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