編輯:關於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中的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!"); } } }
剛接觸android的時候看到項目裡面用到了ImageLoader這個圖片緩存插件,當初抱著“知其然必要知其所以然”的想法還專門下載了它的源碼沒頭
本文實例講述了Android中AsyncTask與handler用法。分享給大家供大家參考,具體如下:首先,我們得明確下一個概念,什麼是UI線程。顧名思義,ui線程就是管
任何程序都是靜態代碼,我們把這些靜態代碼打包好,然後放到運行環境當中,通過事件流的驅動使這些代碼運行起來。Android的環境也不例外。靜態的代碼,在動態事件的驅動下,才
前言Android自定義控件經常會用到Canvas繪制2D圖形,在優化自己自定義控件技能之前,必須熟練掌握Canvas繪圖機制。本文從以下三個方面對Canvas繪圖機制進
深入理解LauncherActvity 之LauncherActivit