Maz*_*zzy 1 java model-view-controller swing observer-pattern
我有这种情况:
一个可观察的对象,另一个是观察者的对象.
观察者有一个update(Observable obs,Object obj)接收通过notifyObservers对象接收的方法.当观察者收到通知时,update方法打印更改的对象.我想在实现MVC模式的gui中打印出结果.我遵循这个指南MVC模式.我的想法是成为Controller观察者.类似的东西:
public class Controller extends AbstractController implements Observer
{
public static final String TOTAL_HIT_COUNT_PROPERTY = "Total Hit";
public void changeTotalHitCount(long new_total_hit_count)
{
setModelProperty(TOTAL_HIT_COUNT_PROPERTY, new_total_hit_count);
}
@Override
public void update(Observable o, Object arg)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但我不知道这是否是正确的实施!
Observer Pattern和MVC Pattern是两种截然不同的设计模式 - 只是为了确保我们在同一页面上.
在MVC(至少按定义)模式中,View应该在模型更改时自动更新,我猜这是你要做的.在这种情况下,这意味着你的Observer应该是View,而不是Controller,你的Model将是你的Observable对象.
从而:
Observable changes --> update Observer
Run Code Online (Sandbox Code Playgroud)
将复制你想要在纯MVC模式中获得的内容:
Model changes --> update View
Run Code Online (Sandbox Code Playgroud)
我不是说这应该是做事的方式,但我想如果你试图将Java的Observer/Observable应用于MVC模式,这可能会继续下去.
观察者模式是 MVC 的一部分。它是MVC的一个组成部分。
观察者模式也是熟悉的模型-视图-控制器 (MVC) 架构模式中的关键部分。来源:https : //en.wikipedia.org/wiki/Observer_pattern
MVC 模式可以看作是这三种设计模式的组合:观察者模式、复合模式和策略模式。这意味着 Observer 和 MVC是兼容的。
| 归档时间: |
|
| 查看次数: |
9042 次 |
| 最近记录: |