PresentationDomainSeparation

2003年10月9日

我发现并遵循的最有用的设计原则之一是在程序的表示方面(用户界面)和其他功能之间保持良好的分离。这些年来,我看到了很多这样做的好处:

  • 表示逻辑和领域逻辑分开时更容易理解。
  • 您可以在同一个基本程序上支持多个表示,而无需复制代码。
  • 用户界面很难测试,分离使更多的逻辑保持在更可测试的地方。
  • 您可以很容易地添加用于脚本编写或公开为服务的编程API(实际上我将其视为替代表示)。
  • 表示代码需要与域代码不同的技能和知识。

尽管有这么多优点,但我经常看到有人违反这一原则。我认为部分原因是缺乏知识,部分原因是许多框架太容易将领域逻辑混合到表示中,而使保持分离变得更加困难。

不要误以为这是客户机/服务器的物理分离。即使您的所有代码都运行在同一台机器上,进行这种逻辑分离也是值得的。

这一原则是模型-视图-控制器(MVC)最突出的部分,事实上,对许多人来说,MVC就是他们描述这种分离的方式。

请记住,像web服务这样的东西也是表示,即使它们是由计算机用户而不是人类用户使用的。因此,不要将域代码与支持web服务或任何其他外部API所需的代码混在一起。

(我也在一个IEEE软件列.)