Android 接口回调
天蓬老师
天蓬老师 2017-04-17 16:48:24
[Android讨论组]
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
怪我咯

不算是观察者模式吧,不过可以实现观察者模式

ringa_lee

不能说接口回调就是观察者模式,但是观察者模式使用了接口回调

大家讲道理

接口回调不算是观察者模式

回调的例子:在Java中,方法的参数可以传递对象,在参数中传递实现某个接口的类的时候,就可以实现在这个方法中调用参数对象的方法,一般情况下你在调用A方法时传递了一个实现了B接口的匿名对象b(之说以说是匿名是因为没有复制给有名字的引用,如B b = new B()则不是匿名对象),那么在A方法内部,你则可以调用对象b的方法,此时调用b的方法,则进入到对象b复写B接口的方法中,回调就是这样子实现的。

观察者模式:指的是在有一个被观察对象,被观察对象通常持有观察者对象(各种Listener就是观察者对象,通常被观察者内部会有一个List保持这些引用)的引用,一个被观察对象可以给多个观察对象注册监听(观察这个对象的改变),当被观察对象的内容有改变的时候,会调用内部的方法遍历所有观察者对象(各种Listener,例如View中的OnClickListener等等),调用这些监听器对象的对应的内容改变方法,通知观察者有事件变化了,让观察者做出对应改变,所以观察者模式只是借助了回调来实现,并不能说回调就是观察者模式。

巴扎黑

其实按照楼主真正想问的意思,可以说你理解的也算对,观察者模式最普遍的例子就是回调函数

怪我咯

不是,但观察者模式是通过回调实现的

阿神

是观察者模式,只不过他是一种特殊的观察者模式。接口回调是一对一,观察者模式是一对多。观察者模式只不过是接口回调换了个好听的名字而已,原理还是一样的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号