android 委托列表,android深入之设计模式(一)委托模式

(一)委托模式简介

委托模式是基本的设计模式之一。委托,即是让另一个对象帮你做事情。

许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。

委托模式使得我们可以用聚合来替代继承,java-组合优于继承。

最简单的java委托模式

class RealPrinter {

void print() {

System.out.println("real printer");

}

}

class Printer {

RealPrinter realPrinter = new RealPrinter();

public void print() {

realPrinter.print();

}

}/**

* 简单委托模式

*

* @author peter_wang

* @create-time 2014-5-19 下午5:39:42

*/

public class DelegationDemo {

/**

* @param args

*/

public static void main(String[] args) {

Printer printer = new Printer();

printer.print();

}

}(二)android中的委托模式

android中的listerner事件即是委托模式,比如Button点击事件。我们来模拟整个点击事件是如何运用委托模式的。

/**

* 模拟基本View

*

* @author peter_wang

* @create-time 2014-5-19 下午5:03:55

*/

public class View {

private OnClickListener mOnClickListener;

/**

* 模拟点击事件

*/

public void clickEvent() {

if (mOnClickListener != null) {

mOnClickListener.onClick(this);

}

}

public void setOnClickListener(OnClickListener onClickListener) {

this.mOnClickListener = onClickListener;

}

/**

* 点击事件接口

*

* @author peter_wang

* @create-time 2014-5-19 下午5:05:45

*/

public interface OnClickListener {

public void onClick(View v);

}

}/**

* 模拟按钮

*

* @author peter_wang

* @create-time 2014-5-19 下午5:17:57

*/

public class Button

extends View {

}/**

* 模拟基本Activity类

*

* @author peter_wang

* @create-time 2014-5-19 下午5:20:38

*/

public class Activity {

public static void main(String[] args) {

Activity activity = new Activity();

activity.onCreate();

}

/**

* 模拟OnCreate方法

*/

protected void onCreate() {

}

}/**

* 委托模拟页面

*

* @author peter_wang

* @create-time 2014-5-19 下午5:19:22

*/

public class DelegationActivity

extends Activity

implements OnClickListener {

private Button mButton;

@Override

protected void onCreate() {

super.onCreate();

mButton = new Button();

mButton.setOnClickListener(this);

// 模拟点击事件

mButton.clickEvent();

}

@Override

public void onClick(View v) {

if (v == mButton) {

System.out.println("onClick() is callback!");

}

}

}

原文:http://blog.csdn.net/wangpeifeng669/article/details/26271925

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值