啥都不说,先贴张图

设计原则:1,找出程序中固定不变的方面,然后将其和变化的方面分离。2,针对接口编程,而不是针对实现编程。3,多用组合,少用继承。

 

那么怎么去理解这个设计模式呢?有人用打仗的设计模式,我也来理解理解。

是的,间谍,以前称细作,战国称义报。

如果,王剪想知道项燕大军的部署,就马上派出了间谍混进了项燕的60万大军中?当然不是,应该是两国建立外交(商家入国)的时候,就派出了大量的间谍(义报),这叫做预先计划!打战时才派间谍(斥候),那容易败露(有bug,不容易拓展)

怎么理解王剪和间谍之间的关系,间谍和项燕之间的关系呢?

我认为这里有三个接口

I燕国 、I间谍、I秦国

同时有行为组合(这些可以自己定义接口)

I监视个人信息、I监视大军动向 等等等。

 

不变的部分

1,观察者和被观察的关联

2,被观察者的信息更新,会自动通知观察者(如果是间谍,应该是需要间谍去主动获取,也就是put/get的差别)

变化的

1,观察的主题

2,观察者的数量

观察者和主题是可以集一身。

也就是既可以是观察者,也可以是主题。

posted on 2017-06-08 17:53  有好多问题噶波风水门  阅读(237)  评论(0编辑  收藏  举报