Android(安卓)SDK开发 -- TitleBar重构 (代理模式-优化)
16lz
2021-01-25
上一篇讲到
Android SDK开发 -- TitleBar重构 (代理模式的使用)
然后补了一下代理设计模式。参考书籍《大话设计模式》
改善一下之前的代码设计。
先来定义一个接口
/** * AppTitle接口 * * @author coffee <br> * 2016-1-2 下午10:17:53 */public interface AppTitle {/** * 初始化Title view */public void initTitle();/** * 设置app的title * * @param leftTitle * @param middleTitle * @param rightTitle */public void setTitle(TitleRes leftTitle, TitleRes middleTitle, TitleRes rightTitle);}
接口的实现
public class TitleMgr implements AppTitle {
TitleMgr的实现参考上一篇文章
public abstract class BaseActivity extends Activity implements Handler.Callback, AppTitle {private AppTitle appTitle; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); <span style="white-space:pre"></span>//....findViewById();} /** * 初始化title View */protected void findViewById() {initTitle();}@Overridepublic void initTitle() {appTitle = new TitleMgr(getContext(), findViewById(android.R.id.content));appTitle.initTitle();}/** * 设置app的title栏 * * @param leftTitle * @param middleTitle * @param rightTitle */@Overridepublic void setTitle(TitleRes leftTitle, TitleRes middleTitle, TitleRes rightTitle) {appTitle.setTitle(leftTitle, middleTitle, rightTitle);}
BaseFragment的实现省略。。与Activity类似
至于为什么要定义一个接口AppTitle,而不是直接拿实现类TitleMgr来用。。
目前表示不是很理解。 网上所有的示例都采用接口来实现。。。。。。大概是为了统一代理类和实现类的操作吧。。
更多相关文章
- No.11 使用firewall配置的防火墙策略的生效模式
- LeakCanary 的使用介绍
- Android(安卓)Activity launchMode研究
- Android启动模式—你需要知道的一切
- Android(安卓)4.2 BT系统之蓝牙关闭过程全跟踪
- camera V4L2 FIMC
- Android自定义Dialog弹框效果
- Android(安卓)-- Activity值传递
- 未捕获异常的处理