标签:peter blog log article 简单的 int auth rri 事件
(一)托付模式简单介绍
托付模式是主要的设计模式之中的一个。托付。即是让还有一个对象帮你做事情。
更多的模式,如状态模式、策略模式、訪问者模式本质上是在更特殊的场合採用了托付模式。
托付模式使得我们能够用聚合来替代继承。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中的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);
}
}/**
* 模拟button
*
* @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!");
}
}
}标签:peter blog log article 简单的 int auth rri 事件
原文地址:http://www.cnblogs.com/jhcelue/p/7145242.html