设计模式之模版方法模式最完美的设计模式(十)

模板方法模式详解
本文详细介绍了模板方法设计模式,这是一种常用的设计模式,用于统一子类的算法实现步骤。通过一个抽象父类定义算法骨架,子类负责具体实现细节。文章还分析了这种模式在JDK源码中的应用。

come on, let go, 成神之路


注意这是几乎所有开源项目中最多的一个设计模式

定义: 一般是为了统一子类的算法实现步骤, 所使用的一种手段或方式. 它在父类中定义一系列算法的步骤, 而将具体的实现都推迟到子类


最典型的就是一个抽象父类, 里面有一系列的抽象方法, 而在子类中一一去实现这些方法.

  • 抽象出一个接口
  • 抽象类来实现方法, 还可以定义一些方法
  • 具体实现类来实现抽象类的中需要实现的方法

模版方法模式一般可以用于定义构建某个对象的步骤与顺序,或者定义一个算法的骨架

  • 注意点:
    • 父类提供的构建步骤和顺序或算法骨架是不希望甚至是不允许子类去覆盖, 所以在某些场景中, 可以直接将父类提供的骨架的方法声明为fianl类型的
  • 优点: 为了不强制子类实现不必要的抽象方法,但又不剥夺子类自由选择的权利, 由父类默认空实现一些方法, 让子类自由选择覆盖这些方法

注意点jdk源码中的模版方法模式: 应用程序类加载器 ClassLoader

  • jdk的源码中首先直接注释了 使用findLoadClass查看这个类是否已经存在
  • 如果不存在, 如果父类存在就是用父类的loadClass方法 否则 就是用内置加载器, 也就是原文中所属的启动加载器
  • 如果上面的都失败, 那就使用findClass加载

这里有个双亲委派模型, 也就是先从父类加载, 一直到继承体系的顶层否则才会采用当前的类加载器加载

速度有点快了, 设计模式里面总有几个比较磨人的, 继续奋斗吧

转载于:https://www.cnblogs.com/denghailei/p/6731713.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值