模板模式在Android開發(fā)中的應用

對模板模式理解

模板模式就是定義一個抽象類,在這個抽象類中定義一些能被子類重寫的抽象方法,同時定義一個不能被子類重寫,按一定順序執(zhí)行的算法,子類不能改變這個執(zhí)行順序,但是可以根據(jù)自己的需求對其中的方法進行重寫。
例如電腦從開機到關機要經(jīng)過:
開機->操作電腦->關機
我們不能改變這個順序,但可以對電腦的不同操作。

對模板模式的一般例子可以參考:https://www.cnblogs.com/qq-361807535/p/6854191.html

下面我主要說的是模板模式在Android開發(fā)中的具體應用,我們都知道在開發(fā)中我們都要寫一個Activity的基類,主要抽象了一些我們在寫Activity時都會用到的方法。
比如,加載布局、初始化View、初始化一些數(shù)據(jù)等等。

public abstract class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView();
        initView();
        initData();
    }
    /**
     * 設置布局
     */
    protected abstract void setContentView();
    /**
    * 初始化View
    */
    protected abstract void initView();

    /**
    * 初始化數(shù)據(jù)
    */
    protected abstract void initData();
}

在BaseActivity中定義了3個抽象方法。

  1. setContentView:設置布局,需要子類來實現(xiàn)
  2. initView:初始化View,需要子類實現(xiàn)
  3. initData:初始化數(shù)據(jù),需要子類實現(xiàn)
    而在子類中不需要重寫onCreate方法,只需要實現(xiàn)上面的3個方法即可,還有就是如果使用了ButterKnife的話,也只是需要在onCreate加入ButterKnife.bind(this);,在子類中就可以使用ButterKnife了。
    具體子類的代碼如下:
public class MainActivity extends BaseActivity {

    @Override
    protected void setContentView() {
        setContentView(R.layout.activity_main);

    }
    
    @Override
    protected void initView() {

    }

    

    @Override
    protected void initData() {

    }
}

模板模式在Android開發(fā)中的應用就到此結(jié)束了。

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

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