犀渠玉剑良家子,白马金羁侠少年。这篇文章主要讲述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); } }
/** * 模拟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!" ); } }}
【android深入之设计模式托付模式】
推荐阅读
- [转] Android开发之如何保证Service不被杀掉(broadcast+system/app)
- Android 6.0 Changes
- 万里征程——Windows App开发控件大集合1
- 开源的图像滤镜库----for Android
- Sqoop与Hadoop生态系统的集成
- Sqoop安装
- Sqoop导入
- Sqoop导出
- Sqoop教程