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