相关疑难解决方法(0)

Mediator Vs Observer面向对象的设计模式

我一直在阅读四人帮,以解决我的一些问题,并遇到了Mediator模式.

我之前在项目中使用了Observer来制作一些GUI应用程序.我有点困惑,因为我发现两者之间没有太大区别.我浏览找到差异,但找不到任何适合我的查询的答案.

有人可以帮助我区分两者,并用一些明确划分两者的好例子吗?

oop design-patterns mediator observer-pattern

84
推荐指数
7
解决办法
3万
查看次数

关于数据封装的C#设计问题

我有四个类:
1:拥有数据的一个
2:另一个更新数据
3:第三个通知第一个关于数据的某些变化
4:最后一个从第一个类读取某些属性

我不想要任何其他类,但第二个能够更新数据.
那么在这里使用的最佳设计模式是什么?

关于这个问题的更多内容:
第一类被称为Schema,它拥有一个计数器,其中包含使用该Schema的实例数.
第二个类称为Factory,它创建/删除这些实例,因此我需要更新Schema实例计数器并在必要时创建新的Schema对象.
第3类称为Config,它包含各种共享配置,包括有关每个新Schema对象的信息.
第4类称为View,它只是查看Schema信息.
模式对象可以通过ID访问,因为它们保存在静态列表中.

c# oop encapsulation design-patterns

7
推荐指数
1
解决办法
354
查看次数

观察者模式 vs 事件总线消息方法

我一直在密切关注 MVC 实现和事件总线。

为什么不使用 Event-bus 而不是 Observer Pattern 来实现 MVC 应用程序?

例如,可以说我有两个类ModelView,在这将是典型的观察者模式:

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 有哪些问题(如果有)?

java architecture oop model-view-controller design-patterns

4
推荐指数
1
解决办法
1379
查看次数