【发布时间】:2010-11-03 09:51:56
【问题描述】:
明确地说,我不希望解决这个问题。弄清楚这一点的很大一部分显然是解决问题。但是,我在架构良好的 n 层应用程序方面没有很多经验,我不想最终得到一个不守规矩的 BLL。
在撰写本文时,我们的业务逻辑在很大程度上是一个混合的麻线球。具有相同业务逻辑的星系间混乱的依赖关系被多次复制。我现在的重点是将业务逻辑从我们称为数据访问层的东西中提取出来,这样我就可以定义可以订阅的众所周知的事件。我想我想支持事件驱动/反应式编程模型。
我希望有一些可实现的目标告诉我如何以非常适合业务逻辑的方式设计这些类集合。如果有一些东西可以区分好 BLL 和坏 BLL,我想听听更多关于它们的信息。
作为一名经验丰富的程序员但相当谦虚的架构师,我向社区成员寻求建议。
编辑 1:
所以验证逻辑进入业务对象,但这意味着业务对象需要将验证错误/逻辑传达回 GUI。这让我想到将业务操作实现为对象而不是对象,以提供更多关于操作必要性的元数据。我不是代码克隆的忠实粉丝。
【问题讨论】:
-
在我的回答中,生成了代码,尽管这不是严格要求的。只是很多逻辑是重复的,尽管以这种方式组织的优点是知道代码更改会进入 BS 文件(或者如果那里有问题,则每个 DL 都会发生变化)。
-
验证逻辑无处不在恕我直言。
-
您可以使用业务层中定义的特殊异常类向 UI 传达任何验证错误。
-
@Andres,作为交流方式的例外......不确定那个。它们用于异常行为,验证错误几乎不例外。
-
我希望我能投票更多。
标签: oop architecture n-tier-architecture