设计目的
在界面设计的过程中不难发现每一个界面中有许多相似的逻辑和相似的代码,我们可以将这些公共的代码抽取出来,新建一个基类来简化程序,使得程序的累赘部分减少,更加简洁。同时实现界面抽象化,通过基类接口处理子类对象。
设计思想
要抽取出基类,我们首先去找出每个界面共有的部分。界面初始化信息是必不可少的,可能某些界面有点击按钮,那就可以将设置监听方法和点击方法在基类中定义。对于需要访问网络的界面,添加处理耗时网络任务的方法。当然当用户进入当前界面和离开当前界面时也要做相关处理。
具体实现
BaseUI类中,有保护类型的属性context:Context ,用来传递上下文。保护类型属性 showInMiddle:ViewGroup,这就是要显示的View。保护类型 bundle : Bundle ,可以用于界面之间传递数据。类中定义抽象方法 init():void 用来加载布局、初始化界面。添加onPause()和onPesume()方法处理离开当前页面和进入当前页面需要执行的内容。定抽象方法setListener():void用于设置监听。添加getView():ViewGroup方法返回 showInMiddle,用来对外抛出当前界面。类图如图4.3所示:
图4.3 BaseUI类图
生命周期
界面在初始化和切换的过程中生命周期如图4.4所示:
图4.4 BaseUI生命周期图