设计模式_接口回调
来源:互联网 发布:华为mate9数据恢复 编辑:程序博客网 时间:2024/06/10 03:50
在java组件编程时(如Android编程)时会十分频繁的使用到接口回调,以前我都没有发现,只是照着书上写的做。最常见的就是View.setonClickListener(new View.onClickListener())这样的语句了。因为最近看得代码也渐渐多起来了,所以很自然的就发现这个问题了,然后还好现在Android中的sdk源码都是可以直接查看的,现在我明白了。
感觉接口回调也是一种多态的表现,过程就像View类中实现了onClickListener接口,即实现了onClickListener中的onClick方法。不过这个onClick方法只是一个空方法,我们使用一个继承自View的组件,如Button时,在为其注册onClickListener事件的过程中定义了具体的onClick实现方法。
其实对于接口回调的思考是源自opensudoku代码,下面是其中的代码片段:
- private static class FolderListViewBinder implements ViewBinder {
- private Context mContext;
- private FolderDetailLoader mDetailLoader;
- public FolderListViewBinder(Context context) {
- mContext = context;
- mDetailLoader = new FolderDetailLoader(context);
- }
- @Override
- public boolean setViewValue(View view, Cursor c,int columnIndex) {
- switch (view.getId()) {
- case R.id.name:
- ((TextView)view).setText(c.getString(columnIndex));
- break;
- case R.id.detail:
- final long folderID = c.getLong(columnIndex);
- final TextView detailView = (TextView)view;
- detailView.setText(mContext.getString(R.string.loading));
- mDetailLoader.loadDetailAsync(folderID, new FolderDetailCallback() {
- @Override
- public void onLoaded(FolderInfo folderInfo) {
- if (folderInfo != null)
- detailView.setText(folderInfo.getDetail(mContext));
- }
- });
- }
- return true;
- }
- public void destroy() {
- mDetailLoader.destroy();
- }
- }
- 设计模式_接口回调
- 设计模式_接口回调
- 【读书笔记】设计模式_接口与抽象类
- 【GOF23设计模式】_模板方法模式_钩子函数_方法回调_好莱坞原则JAVA249
- [设计模式之禅读书笔记]004_设计模式六大原则(四):接口隔离原则
- 【GOF23设计模式】_观察者模式_广播机制_消息订阅_网络游戏对战原理_自带类与接口JAVA251-252
- 设计模式中接口回调的意义
- 转_设计模式
- 设计模式_基础
- 设计模式_前言
- 设计模式_慕课网
- 设计模式_结束语
- 设计模式_工厂模式
- 设计模式_策略模式
- 设计模式_观察者模式
- 设计模式_迭代器模式
- 设计模式_策略模式
- 设计模式_代理模式
- C++随机数生成方法(转载,赶紧搜藏)
- 学习凸包(五):卷包裹算法--兼解POJ1113(JAVA)
- JAVA经典算法40题(20)
- LINUX下搭建JAVA的开发环境
- Lucene之八(Lucene的高亮显示)
- 设计模式_接口回调
- C#的诞生及与Java的比较
- iPhone4平台上实时音视频对话(经验)
- 开源 免费 java CMS - FreeCMS-功能说明-角色管理 .
- Java Channel解析与实例
- java设计模式——迭代器模式
- java 垃圾回收相关总结 【思维导图】
- 百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
- 命名规则