我正在尝试使用模型视图演示者(MVP)模式的软件,我正在编写。我正在使用c#和Windows窗体,尽管这对于回答我的问题应该无关紧要。
我有多个"mvp结构"。例如,一个是处理保留模式图形,我可以在画布上绘制几何形状。另一种方法是取这些形状,对它们做一些分析,然后把结果放在别的地方。可能有许多事件导致控制器在某个地方操作数据,然后导致在另一个地方对数据进行级联操作,等等。
我担心的是,如果我没有正确地组织我的软件,我最终会失去对变化的跟踪。我可以想到两种方法来组织我的软件中程序部分之间的交互:层次化或像交换板一样。
我的问题是:有什么众所周知的方法或模式,我应该查找组织我的软件?我需要一个网页搜索的起始点
我认为你的直觉是对的。如果你制造了许多层叠的事件,你将以麻烦告终。我曾多次看到由于事件失控而导致的过于复杂的应用程序。这使得代码很难调试和改进。
我首先想到的是中介模式。再详细一点,我将拥有管理部分业务逻辑的中心类。我将在每个轻量级MVP中都有模型,基本上是一个向服务器(其中一个控制器类)请求更复杂业务逻辑的客户端。这个想法是让MVP类的每个模型与尽可能少的类(核心业务逻辑)交互,并避免与其他MVP(将具有更具体的业务逻辑)交互
在任何情况下,我都会尽可能地限制抛出和侦听事件的类,并将其集中在尽可能少的地方。观察者模式在这里可以提供帮助。此外,拥有一个带有包含繁重业务逻辑的服务层的客户机-服务器体系结构可以帮助实现这种解耦,并在将来可维护。
fowler经典著作《企业应用程序架构的模式》中的模式服务层也很值得一读。