如何使用观测者模式实现监控和推送
观测者模式已在博客"设计模式之观测者模式"中介绍,下面说下如何将观察者模式应用在实际工作中。
问题描述某业务系统会定期接收到传回来的数据,数据放在一个目录下。由于业务的需要,当有新的数据产生时,需要将数据上传到多台机器上。你如何设计这个业务逻辑呢?
功能设计放在目录下的数据时不断更新的,我们需要一个守护线程来监控目录下数据的变化,当有新数据时就通知观测者observers。这里的观测者是需要将数据上传到FTP服务器的对象,当有新数据产生时,就上传数据到FTP服务器。
这里很适合用观测者模式来解决,其中subject的功能是监控目录变化,和通知观测者变化的数据。观测者的功能是上传新的数据到FTP服务器,这里有多个观测者,而且虽这业务的发展,观察者的数目是变化的。
采用观测者模式,可以在不修改代码的情况下,很容易的添加观测者。
详细设计监控目录变化的subject:
观测者模式模版 下面写了一个通用的观测者模式模版代码,用户只需要在对应地方加入自己的业务逻辑即可sunbject类:只需要修改logicMethod方法中的业务逻辑即可。