Android技术Android开发经验谈Android知识

java设计模式之观察者模式实例讲解

2017-09-06  本文已影响30人  黑n大

在设计模式中,观察者是使用率非常高的设计模式之一,特别是在android中,一些订阅,RxJAVA...等等,都用到了设计者模式,因为观察者模式使得我们的UI层和具体的业务逻辑分开,解耦。

观察者模式的定义:

定义对象之间的一种一对多的关系,使得每当一个对象改变状态,则所有的依赖于它的对象都会得到通知并被自动更新。

从定义中可以知道,这是一个一对多的关系,一个对象对多个对象,所以是一个类中有多个类的引用,这个对象状态改变,所有依赖它的对象都会得到通知并改变,所以这个类应该有一个通知的方法,依赖它的对象应该都有一个改变的方法。

接下来简单实现这个类的设计

这个就是我们的被观察者的类的设计,它有一个被观察的数据,这个数据如果改变,就会通知观察者对象,所以当调用setMoney()方法时,在其内部调用了notifalAll()方法,来通知观察者,在notifalAll()方法中我们循环取出arraylist中的观察者对象,并调用观察者对象的updata()方法来更新我们的观察者对象,register()方法表示注册观察者,就是将观察者对象添加到集合中,unRegister()方法自然就是移除观察者对象。

接下来就是我们的观察者对象的设计,从上面可以看出来我们的观察者有一个更新自己的方法updata(),并且他们的父类是同一个,方便添加的集合中。

这上面就是观察者的父类

这两个就是具体的观察者类

这是它的测试类,上面的注释都写的很清楚了,就不需要解释什么了

这个就是测试的结果了,从结果来看,当我们的money值发生变化时,就会通知我们的观察者来执行相应的逻辑。

这就是观察者模式。在遇到一些复杂的需求时,我们可以多考虑考虑设计模式,来让复杂的问题简单化,化繁为简。

上一篇下一篇

猜你喜欢

热点阅读