其它模式:
一.Strategy Pattern(策略模式)
二.Template Method Pattern(模版方法模式)
三.Bridge Pattern(橋接模式)
四.Visitor Pattern(觀察者模式)
五.Action Pattern(命令模式)
设计模式,还没写完,今天有些空,接着写。
今天看看观察模式。最近在帮公司做个考试系统。我们知道,考试有单选,多选,填空等等。。。分别视为一个对象的话,那对这个对象,就会有很多操作?
Code
我们可以把它视为被观察者,即为被观察的对象。这里,我只列举了Update操作。
然后,我们观察者,既发出操作的对象。
Code
我们也用抽象类来隔离。这样。观察者(Question)和被观察者(Operator)之间分离,降低耦合。
现在的情景是,当我提交答案胡时候,
UpdateOperator update = new UpdateOperator();
update.Add(new SingleSelect());
update.Add(new MultiSelect());
update.Add(new Blank());
update.Add(new SingleSelect());
update.Add(new MultiSelect());
update.Add(new Blank());
可以方便把观察者(Question)和被观察者 Operator 组合起来,实现我们更新答案的功能!