2019-04-23设计模式-模板模式

2019-04-23  本文已影响0人  猫KK

定义一个算法步骤,并允许子类为一个或多个步骤提供实现

其中在android中的表现为Activity,给你定义了Activity的各个生命周期,就相当定义了一个算法的步骤;在子类,也就是我们自己的Activity中,可以实现一个或多个生命周期。下面以BaseActivity为例:定义BaseActivity的算法步骤

    public abstract class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(getLayoutId());

        initView();

        initDate();
    }

    protected abstract int getLayoutId();

    protected abstract void initView();

    protected abstract void initDate();
}

在onCreate方法中我们定义了一个算法的步骤即:执行getLayoutId()获取ID、执行initView()初始化控件、执行initDate()初始化数据。每一个继承BaseActivity的子类都需要遵守这一个步骤,并且不同的子类通过实现对应的步骤得到不同的内容。例如LoginActivity:

    public class LoginActivity extends BaseActivity {
    @Override
    protected int getLayoutId() {
        return R.layout.activity_login;
    }

    @Override
    protected void initView() {
        //做一些初始化控件的操作
    }

    @Override
    protected void initDate() {
        //做一些初始化数据的操作
    }
}

通过实现 getLayoutId() 返回不同的ID,得到不同的界面展示内容;initView() 则做不同界面的初始化操作;initDate() 则做不同界面数据的初始化操作。

小总结

模版模式,其实就是定义一个模版,然后继承该模版,实现其中的方法步骤,从而得到不同的内容`

上一篇 下一篇

猜你喜欢

热点阅读