Dev*_*Dev 3 model-view-controller design-patterns
假设某个View感兴趣的模型中有5个或6个变量,您是否为每个变量编写了不同的函数,例如
int a;
int b;
int c;
void setA( newA ) {
a = newA;
notifyAObservers();
}
void setB( newB ) {
b = newB;
notifyBObservers();
}
void setC( newC ) {
b = newC;
notifyCObservers();
}
Run Code Online (Sandbox Code Playgroud)
或者你只有一个通知方法并浪费一点CPU时间
ie而不是notifyAObservers和notifyBObservers,你只需要notifyObservers
我相信传统的方法是通知所有观察者,让他们处理它.这是因为您不知道哪些观察者正在观察哪个变量 - 您只知道他们希望在出现变化时收到通知.但是,如果您确实知道观察者正在观察哪些变量,并且性能至关重要,那么您可能会做出类似于您拥有的内容.
在传统的Observer模式中,Observers实现了一个update()方法,当发生更改时,控制器会调用该方法.Observables(数据模型)将有一个notifyObservers()方法,它迭代Observers并调用它们的update()方法.然后,观察者得到他们需要的任何东西,视图更新.
但是,只要我实现了Observer模式,我只需保留一个观察者列表并通知所有人.这样,我只有一个观察者列表,其余的类以及不同的观察者都可以改变,而不会对可观察的类通知进行任何更改.
| 归档时间: |
|
| 查看次数: |
2689 次 |
| 最近记录: |