观察者模式备忘

1.java web端的观察者模式,主要是 A 发生状态变化调用B 时,在A内部加入成员变量Listenter,并在Listener初始化时传入B,在A状态变化是,调用Listener.Notify,从而调用B;

2.在Android等界面UI控件的程序中,往往在A类中成员变量包括了TextVew Button等UI控件,这时 对控件添加addListener()方法的匿名内部类,其中的实现方法因为是内部类,所以可以直接访问A类的其他成员和方法;在系统运行时,用户触发界面点击,系统去调用之前在A类中注册过的Listener,调用匿名内部类的方法,比如onClick();


所以两种观察着模式的方式还是不一样,第一种是A调用B,A是状态改变的触发者,B是方法的实现类  对于第二种UI控件,系统或者用户是触发者,A类及其中Listener的匿名内部类实现的方法,是实现类,相当于第一种情况中的B,所以在第一种情况,即java web 后端设计观察者模式的时候,A类应该是仿照操作系统,自动设置事件的触发,调用,获取listener对象的实现类,B类的设计应该类似UI控件,对事先会触发的方法,提供一个匿名内部类,也可以用动态代理加反射的方法,调用类内部的method ,参考xUtils的实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值