1. 程式人生 > >模板模式(Template attern):簡單&粗暴解析

模板模式(Template attern):簡單&粗暴解析

1.前言


2.目錄

模式目錄.png


3.含義

一個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。


4.解決

1.一些方法通用,卻在每一個子類都重新寫了這一方法。


5.原理

定義一個父類,把子類公用或者通用的方法封裝在父類中,讓不同的子類按需要重寫方法實現。

5.1 模板模式結構

模板結構1.png

5.2 結構分析

Template:定義通用或者公用的方法模板。
ATemplate:具體實現。
BTemplate:具體實現。

5.3 例項(不同品牌印表機的列印功能)

Printer

public abstract class Printer {
    abstract void init();
    abstract void startPlay();
    abstract void endPlay();
    public
final void play(){ init(); startPlay(); endPlay(); } }

HtcPrinter

public class HtcPrinter extends Printer {
    @Override
    void init() {
        //初始化
        //接入電源
        //設定列印任務
    }
    @Override
    void startPlay() {
        //開始列印
    }
    @Override
    void endPlay
() { //結束列印 } }

SamsungPrinter

public class SamsungPrinter extends Printer {
    @Override
    void init() {
        //初始化
        //接入電源
        //設定列印任務
    }
    @Override
    void startPlay() {
        //開始列印
    }
    @Override
    void endPlay() {
        //結束列印
    }
}

6.優點

1.封裝不變部分,擴充套件可變部分。
2.提取公共程式碼,便於維護。
3.行為由父類控制,子類實現。


7.缺點

  1. 每一個不同的實現都需要一個子類來實現,導致類的個數增加,使得系統更加龐大(類爆炸)。

8.總結

  • 到此, 模板模式 就解析完畢,後續我會把上述 三大型別模式 下的各子模式進行解析分享,
    請繼續關注linhaojian_簡書
  • 如果喜歡我的分享,可以點選  關注  或者  ,你們支援是我分享的最大動力 。
    linhaojian的Github

歡迎關注linhaojian_CSDN部落格或者linhaojian_簡書

不定期分享關於安卓開發的乾貨。

設計模式(Design pattern):簡單&粗暴解析
單例模式(Singleton Pattern):簡單&粗暴解析
簡單工廠模式(Easy Factory Pattern):簡單&粗暴解析
工廠模式(Factory Pattern):簡單&粗暴解析):簡單&粗暴解析
抽象工廠模式(Abstract Factory Pattern):簡單&粗暴解析
建造者模式(Builder Pattern):簡單&粗暴解析
代理模式(Proxy Pattern):簡單&粗暴解析
裝飾器模式(Decorator Pattern):簡單&粗暴解析
外觀模式(Facade Pattern):簡單&粗暴解析
享元模式(Flyweight Pattern):簡單&粗暴解析
觀察者模式(Observe Pattern):簡單&粗暴解析
策略模式(Strategy attern):簡單&粗暴解析


寫技術文章初心

  • 技術知識積累
  • 技術知識鞏固
  • 技術知識分享
  • 技術知識交流