標籤: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中的託付模式
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深入之設計模式(一)託付模式