设计模式之:
二:命令模式
在项目中我们经常会碰到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中去即控件的点击事件
}
});
还有就是在项目的网络请求中,普遍是使用该模式。既降低了代码的耦合,而且极大的增强了代码的耦合性。。这里就不详细介绍了,有兴趣的读者可以私信与我交流。。。欢迎大家前来骚扰。。
下一章:策略模式。。。敬请期待。。