模板模式

模板方法模式

概念:通過定義一個算法的骨架,而將算法中的步驟延遲到子類,這樣子類就可以復(fù)寫這些步驟的實現(xiàn)來實現(xiàn)特定的算法.

使用場景

  • 多個子類又共有的方法,并且邏輯基本相同(activity生命周期)
  • 重要復(fù)雜的算法,可以把核心算法設(shè)計為模板方法.
  • 重構(gòu)時,模板方法模式是一個經(jīng)常使用的模式.

頂層接口:
AbstractWork

public abstract class AbstractWork {
    protected void getUp() {
        System.out.println("起床了");
    }

    protected abstract void goToWork();

    protected abstract void work();

    protected abstract void getOffWork();

    /**
     * TemplateMethod,共同調(diào)用的方法.
     */
    public final void newDay() {
        getUp();
        goToWork();
        work();
        getOffWork();
    }
}

子類一:

public class BossWork extends AbstractWork {
    @Override
    protected void goToWork() {
        System.out.println("boss go to work by car");
    }

    @Override
    protected void work() {
        System.out.println("boss work ");
    }

    @Override
    protected void getOffWork() {
        System.out.println("boss get off work at 6:00 pm");
    }
}

子類二:

public class StaffWork extends AbstractWork {
    @Override
    protected void goToWork() {
        System.out.println("employee  go to work by car");
    }

    @Override
    protected void work() {
        System.out.println("employee work ");
    }

    @Override
    protected void getOffWork() {
        System.out.println("employee get off work at 5:00 pm");
    }
}

測試

public static void main(String[] args) {
    BossWork bossWork = new BossWork();
    StaffWork staffWork = new StaffWork();
    bossWork.newDay();
    staffWork.newDay();
}

模板小結(jié)

  • 抽象模板
  • 具體模板

Android模板方法的運用

  • activity和fragment
  • AsyncTask
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容