《Android源碼設(shè)計(jì)模式解析和實(shí)戰(zhàn)》模塊方法模式

按照一定步驟執(zhí)行方法,當(dāng)時步驟內(nèi)的方法可能發(fā)生修改或添加。
步驟
<pre>
public abstract class Module {
private static final String TAG = "Module";

protected void aVoid() {
    Log.i(TAG, "開始: ");
}

protected void bVoid() {
    Log.i(TAG, "加速: ");
}

protected void cVoid() {
    Log.i(TAG, "減速: ");
}

protected void dVoid() {
    Log.i(TAG, "結(jié)束: ");
}

public final void running() {
    Log.i(TAG, "running: 跑步---------------------");
    aVoid();
    bVoid();
    cVoid();
    dVoid();
    Log.i(TAG, "running: 跑步------------------------");
}

</pre>
A
<pre>
public class ModuleImplA extends Module {
private static final String TAG = "ModuleImplA";
@Override
protected void aVoid() {
Log.i(TAG, "ModuleImplA: 提前開始");
}
}
</pre>
B
<pre>
public class ModuleImplB extends Module {
private static final String TAG = "ModuleImplB";

@Override
protected void dVoid() {
    Log.i(TAG, "ModuleImplB: 提前結(jié)束");
}

}
</pre>
使用
<pre>
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Module module = new ModuleImplA();
    module.running();
    module = new ModuleImplB();
    module.running();
    module = new Module() {
        @Override
        protected void aVoid() {
            super.aVoid();
            Log.i(TAG, "MainActivity: 重新開始 ");
        }
    };
    module.running();
}

</pre>
log
<pre>
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: running: 跑步---------------------
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/ModuleImplA: ModuleImplA: 提前開始
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 加速:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 減速:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 結(jié)束:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: running: 跑步------------------------
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: running: 跑步---------------------
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 開始:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 加速:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 減速:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/ModuleImplB: ModuleImplB: 提前結(jié)束
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: running: 跑步------------------------
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: running: 跑步---------------------
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 開始:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/MainActivity: MainActivity: 重新開始
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 加速:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 減速:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: 結(jié)束:
03-13 21:44:58.820 26327-26327/com.lerz.moduledmeo I/Module: running: 跑步------------------------
</pre>

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,765評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 現(xiàn)在的男女認(rèn)識真的 好簡單,陌陌?探探?附近的人?等等各種交友平臺,往往這樣的感情真的不會有人去珍惜吧畢竟來的太快...
    過呀過呀閱讀 305評論 0 0
  • 今天寫什么,思想近于枯竭,怎么會這樣,越來越不知道寫什么。 此時,天空陰云密布,黑壓壓的,氣候又濕又悶,悶得發(fā)慌。...
    碼字好玩兒閱讀 433評論 0 0
  • 滋蘭閱讀 315評論 0 0

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