Android SDK开发 -- TitleBar重构 (代理模式-优化)
2016-01-03 11:52
585 查看
上一篇讲到
Android
SDK开发 -- TitleBar重构 (代理模式的使用)
然后补了一下代理设计模式。参考书籍《大话设计模式》
改善一下之前的代码设计。
先来定义一个接口
接口的实现
TitleMgr的实现参考上一篇文章
然后改善一下BaseActivity的类(该类相当于AppTitle的代理类,TitleMgr是AppTitle的实现类)
BaseFragment的实现省略。。与Activity类似
至于为什么要定义一个接口AppTitle,而不是直接拿实现类TitleMgr来用。。
目前表示不是很理解。 网上所有的示例都采用接口来实现。。。。。。大概是为了统一代理类和实现类的操作吧。。
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的实现参考上一篇文章
然后改善一下BaseActivity的类(该类相当于AppTitle的代理类,TitleMgr是AppTitle的实现类)
public abstract class BaseActivity extends Activity implements Handler.Callback, AppTitle { private AppTitle appTitle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); <span style="white-space:pre"> </span>//.... findViewById(); } /** * 初始化title View */ protected void findViewById() { initTitle(); } @Override public void initTitle() { appTitle = new TitleMgr(getContext(), findViewById(android.R.id.content)); appTitle.initTitle(); } /** * 设置app的title栏 * * @param leftTitle * @param middleTitle * @param rightTitle */ @Override public void setTitle(TitleRes leftTitle, TitleRes middleTitle, TitleRes rightTitle) { appTitle.setTitle(leftTitle, middleTitle, rightTitle); }
BaseFragment的实现省略。。与Activity类似
至于为什么要定义一个接口AppTitle,而不是直接拿实现类TitleMgr来用。。
目前表示不是很理解。 网上所有的示例都采用接口来实现。。。。。。大概是为了统一代理类和实现类的操作吧。。
相关文章推荐
- Android获取WiFi IP地址
- Android开发学习之路-Service和Activity的通信
- Android 百度地图经纬度转换成地址
- Android 4.4(API 19)闹钟管理与计步器功能
- 关于 android ImageView 圆角处理 圆图
- Gradle for Android 第三篇( 依赖管理 )
- Android访问权限详解
- android的SDCard数据写入
- Gradle for Android 第一篇( 从 Gradle 和 AS 开始 )
- AS基础命令篇一 - android
- 写给2016的自己
- 《Monkey Android》第15课Spinner和AutoCompleteTextView
- Android对应版本号
- android viewpager+fragment做主界面(超容易理解的demo!)
- android studio 代码混淆
- android studio 多渠道打包
- android 文本框添加边框and 代码横线疑惑
- 《AndroidStudio每日一贴》11. 重构之提炼为常量
- Android高德地图开发具体解释
- Dagger2使用方法