2

我正在尝试将 Model View Presenter (MVP) 模式用于我正在编写的软件。我正在使用 C# 和 Windows 窗体,尽管这对于回答我的问题并不重要。

我有多个“MVP 结构”。例如,其中一个是处理保留模式图形,我可以在画布上绘制几何形状。另一种是采用这些形状,对它们进行一些分析并将结果放在其他地方。可能有许多事件导致控制器在某处操作数据,然后导致在另一个地方对数据进行级联操作,依此类推。

我担心如果我没有正确组织我的软件,我最终会忘记什么会改变什么。我可以想到两种方法来组织我的软件中发生的程序部分之间的交互:分层或类似开关板。

我的问题是:是否有任何众所周知的方法或模式,我应该查找来组织我的软件?我需要一个网络搜索的起点。

4

1 回答 1

1

我觉得你的直觉是对的。如果你创建了许多级联的事件,你将会遇到麻烦。由于事件失控,我多次看到过复杂的应用程序。这使得代码很难调试和改进。

我首先想到的是中介模式。详细说明一下,我将拥有管理部分业务逻辑的中心类。我将在每个 MVP 轻量级模型中都有模型,基本上是一个客户端,它向服务器(这个控制器类之一)询问更复杂的业务逻辑。这个想法是让 MVP 类的每个模型与尽可能少的类交互(核心业务逻辑),并避免与其他 MVP 交互(这将具有更具体的业务逻辑)

在任何情况下,我都会尽可能地限制抛出和监听事件的类,并将其集中在尽可能少的地方。观察者模式可以在这里提供帮助。还拥有一个带有包含繁重业务逻辑的服务层的客户端-服务器架构可以帮助在未来实现这种解耦和可维护性。

福勒经典“企业应用程序架构模式”中的模式服务层也可以很好地阅读。

于 2013-05-29T17:01:03.283 回答