设计模式之observer and visitor

很长时间一直对observer(观察者)与visitor(访问者)有些分不清晰。

今天有时间进行一下梳理:

1.observer模式

这基本就是一个通知模式,当被观察者发生改变时,通知所有监听此变化的观察者。

MVC、消息队列等等设计有此思想。

在被观察者中,都会存储一个及以上的的观察者名单(映射)

2.visitor模式

访问者模式,主要的解决问题是,通过多态的方式解决,不同的被访问者将会体现不同的形态。

当然这个时候不同于observer模式的观察者名单,而是用不同的接口(接口参数是观察者实现类),

这样就会出现,扩展复杂,甚至是破坏封装(相互之间将会调用对方的私密属性等等)但是和其他模式一起使用就会事半功倍。

原文地址:https://www.cnblogs.com/gaozhichao/p/5431905.html