日更(二十三)-Android-所謂的Base類,模板方法模式

weixin_33890499發表於2019-01-23

瞎扯

設計模式難嗎?
其實就這麼些東西....
都是經常見到的東西..
原始碼難懂嗎?
框架的設計離不開這些設計模式.

模板方法模式.

猛的一問,沒接觸過設計模式的人可能會懵.
什麼玩意..

其實呢,這個模式的概念就是父類抽象.子類實現.按固定規則執行.
比喻模板.

模板

顧名思義.
有了模板就能基於模板複製類似的東西.

我們常寫的封裝.
比如BaseActivity.BaseFragment.BaseDialog.SimpleAdapter之類的封裝.
都能看成模板方法模式.

寫個簡單的BaseActivity

 public abstract class BaseActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            initView();
            loadData();
        }

        /**
         * 載入資料
         */
        abstract void loadData();

        /**
         * 初始化View
         */
        abstract void initView();
    }

loadData (),initView()就是模板方法.

並且模板方法按規則,呼叫.


那麼不是Base之類的就不是模板方法嗎?
不是.

應該說只要是把內容抽象可擴充套件,要子類去實現的,都算模板方法模式.

Activity.Fragment之類的.本身就是模板方法模式.

onCreate,onstart,onstop這些生命週期方法.不就是交給子類去實現複寫嘛.

總結:

兩個字: 繼承 哈哈

把具體的實現交給子類.


今天算水了一篇

您的喜歡與回覆是我最大的動力-_-
交流群:493180098

相關文章