(一)委托模式简介 委托模式是基本的设计模式之一。委托,即是让另一个对象帮你做事情。 许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。 委托模式使得我们可以用聚合

前端之家收集整理的这篇文章主要介绍了(一)委托模式简介 委托模式是基本的设计模式之一。委托,即是让另一个对象帮你做事情。 许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。 委托模式使得我们可以用聚合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

(一)委托模式简介

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

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

委托模式使得我们可以用聚合来替代继承,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!"); } } }

猜你在找的设计模式相关文章