Android SDK开发 -- TitleBar重构 (代理模式-优化)

上一篇讲到

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来用。。

目前表示不是很理解。  网上所有的示例都采用接口来实现。。。。。。大概是为了统一代理类和实现类的操作吧。。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值