【发布时间】:2012-02-16 20:46:39
【问题描述】:
我正在为以下内容寻找合适的设计模式:
我的系统结构如下:
MainApplication
SubSystem1
SubSystem2
SubSystem3
MainApplication 在哪里初始化每个子系统,
SubSystem1 s1;
SubSystem2 s2;
SubSystem3 s3;
public MainApplication()
{
s1 = new SubSystem1();
s2 = new SubSystem2();
s3 = new SubSystem3();
}
每个子系统应该能够相互通信。
在每个子系统中如何调用另一个子系统的方法?例如s1
public SubSystem1()
{
s2.Method1();
s3.Method2();
}
外观设计模式在这里可以使用吗?如果是这样,它将如何实施?如果不是这种情况应该使用哪种设计模式?
【问题讨论】:
-
通讯的扩展是什么?是基于事件的性质还是子系统 1 执行 x,因此子系统 2 也需要执行 y?
-
目前是后者。虽然,使用事件听起来是一个不错的解决方案。你能扩展一下吗?
-
好吧,如果它是基于事件的,比如哦,音乐就传来了。您可以使用事件(内置 .net)订阅事件并根据需要让每个子系统进程。这将防止子系统必须相互了解。
标签: c# design-patterns facade