Start0()是一个native方法,是由 c 语言去实现的,在调用的时候,真正调用了我们的 run() 方法,如果需要跟踪这个方法需要到 HotSpot底层去。这里介绍的目的是让大家了解,它同样是使用了模板模式。
private native void start0();了解 native 关键字可以参考:
模板模式的优缺点模板模式的优点:
1、封装固定的部分,拓展需要定制修改的部分,符合开闭原则。
2、公共的代码在父类中,容易维护。
3、整个流程由父类把握,调整比较方便。
缺点:
1、子类可能会很多,系统复杂度上升。
2、子类只有一小部分实现,了解全部方法则需要在父类中阅读,影响代码阅读。
总结:代码该隐藏的复杂细节隐藏起来,开放定制化部分,优雅!
设计模式系列:
设计模式【1】-- 单例模式到底几种写法?
设计模式【1.1】-- 你想如何破坏单例模式?
设计模式【1.2】-- 枚举式单例有那么好用么?
设计模式【1.3】-- 为什么饿汉式单例是线程安全的?
设计模式【2】-- 简单工厂模式了解一下?
设计模式【2.1】-- 简单工厂模式怎么演变成工厂方法模式?
设计模式【2.2】-- 工厂模式怎么演变成抽象工厂模式?
设计模式【3.1】-- 浅谈代理模式之静态、动态、cglib代理
设计模式【3.2】-- JDK动态代理源码分析有多香?
设计模式【3.3】-- CGLIB动态代理源码解读
设计模式【4】-- 建造者模式详解
设计模式【5】-- 原型模式
设计模式【6.1】-- 初探适配器模式
设计模式【6.2】-- 再聊聊适配器模式
设计模式【7】-- 探索一下桥接模式
设计模式【8】-- 手工耿教我写装饰器模式
设计模式【9】-- 外观模式?没那么高大上
设计模式【10】-- 顺便看看享元模式
设计模式【11】-- 搞定组合模式
设计模式【12】-- 搞定最近大火的策略模式