我一直在阅读四人帮,以解决我的一些问题,并遇到了Mediator模式.
我之前在项目中使用了Observer来制作一些GUI应用程序.我有点困惑,因为我发现两者之间没有太大区别.我浏览找到差异,但找不到任何适合我的查询的答案.
有人可以帮助我区分两者,并用一些明确划分两者的好例子吗?
我有四个类:
1:拥有数据的一个
2:另一个更新数据
3:第三个通知第一个关于数据的某些变化
4:最后一个从第一个类读取某些属性
我不想要任何其他类,但第二个能够更新数据.
那么在这里使用的最佳设计模式是什么?
关于这个问题的更多内容:
第一类被称为Schema,它拥有一个计数器,其中包含使用该Schema的实例数.
第二个类称为Factory,它创建/删除这些实例,因此我需要更新Schema实例计数器并在必要时创建新的Schema对象.
第3类称为Config,它包含各种共享配置,包括有关每个新Schema对象的信息.
第4类称为View,它只是查看Schema信息.
模式对象可以通过ID访问,因为它们保存在静态列表中.
我一直在密切关注 MVC 实现和事件总线。
为什么不使用 Event-bus 而不是 Observer Pattern 来实现 MVC 应用程序?
例如,可以说我有两个类Model和View,在这将是典型的观察者模式:
public class Model implements Subject { ... }
public class View implements Observer { ... }
Run Code Online (Sandbox Code Playgroud)
相反,使用绿色机器人事件总线或任何其他事件总线的方法有什么好处/缺点?
它会是这样的:
public class Model {
private int field = 0;
void someFunctionNowTriggerStateChange() {
this.field = field + 1;
...EventBus.getDefault().post(this); //pass itself as the event
}
}
public class View {
@Subscribe onModelUpdated(Model model) {
updateTextLabel(model);
//other model updates
}
}
Run Code Online (Sandbox Code Playgroud)
与典型的观察者相比,使用 EventBus 实现 MVC 有哪些问题(如果有)?