MFlower——朝花夕拾

                                   有你有我
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

观察着设计模式

Posted on 2008-11-15 19:12  MFlower  阅读(212)  评论(0)    收藏  举报

意图
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。

 

适用性
 1.当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。
 2.当对一个对象的改变需要同时改变其它对象, 而不知道具体有多少对象有待改变。
 3.当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望这些对象是紧密耦合的。

 

 

 

程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)

要求: 

1.要有联动性,老鼠和主人的行为是被动的。

2.考虑可扩展性,猫的叫声可能引起其他联动效应。

 

 

Code

 

程序运行结果:

 

注意:在观察着设计模式中,往往存在一个被观察事物的焦点对象,当该对象的状态发生变化时,与之建立观察关系的所有观察着都将做出特有的反应。