設計模式之:
二:命令模式
在項目中我們經常會碰到listview,gridview這些控件,而經常我們需要對這些item裏面的小控件進行點擊,比如裏面的圖片,名字之類的。
此時,命令模式就很好地發揮了作用。我們經常會遇到一種模式,就是一個接口我們先引用,然後再在另一個類裏面實現,即請求者不直接與接收者交互, 即請求者不包含接收者的引用, 因此徹底消除了彼此之間的耦合。
/**
* 列表上的小部件點擊事件
* @author Administrator
*
*/
public interface OnListItemPartClickListener {
/**
* 列表部件點擊事件
* @param view 控件
* @param obj list item所用的數據對象
* @param status
*/
void onListItemPartClick(View view,Object obj,int state);
}
protected OnListItemPartClickListener onItemPartClick;
public void setOnItemPartClick(OnListItemPartClickListener onItemPartClick) {
this.onItemPartClick = onItemPartClick;
}
protected void setOnClick(View view,final Object obj,final int state) {
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(onItemPartClick!=null){
onItemPartClick.onListItemPartClick(v, obj, state);
}
}
});
}
// 子控件點擊事件
adapter.setOnItemPartClick(new OnListItemPartClickListener() {
@Override
public void onListItemPartClick(View view, Object obj, int state) {
view.setTag(obj);
onClick(view);// 傳遞到onClick中去即控件的點擊事件
}
});
還有就是在項目的網絡請求中,普遍是使用該模式。既降低了代碼的耦合,而且極大的增強了代碼的耦合性。。這裏就不詳細介紹了,有興趣的讀者可以私信與我交流。。。歡迎大家前來騷擾。。
下一章:策略模式。。。敬請期待。。