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

六.观察者模式

Posted on 2009-05-02 16:00  自適應軟件......  阅读(594)  评论(0编辑  收藏  举报

其它模式:
   
         一.Strategy Pattern(策略模式)
         二.Template Method Pattern(模版方法模式)
         三.Bridge Pattern(橋接模式)
         四.Visitor Pattern(觀察者模式)
         五.Action Pattern(命令模式)   

         六.(Observer Pattern)观察者模式   

 

设计模式,还没写完,今天有些空,接着写。

   今天看看观察模式。最近在帮公司做个考试系统。我们知道,考试有单选,多选,填空等等。。。分别视为一个对象的话,那对这个对象,就会有很多操作?

 

Code

 

我们可以把它视为被观察者,即为被观察的对象。这里,我只列举了Update操作。

然后,我们观察者,既发出操作的对象。

 

Code

 

我们也用抽象类来隔离。这样。观察者(Question)和被观察者(Operator)之间分离,降低耦合。

现在的情景是,当我提交答案胡时候,

 

UpdateOperator update = new UpdateOperator();
            update.Add(
new SingleSelect());
            update.Add(
new MultiSelect());
            update.Add(
new Blank());

可以方便把观察者(Question)和被观察者 Operator  组合起来,实现我们更新答案的功能!