我该如何实现业务逻辑层?

时间:2010-12-30 02:26:06

标签: architecture bll

假设我有一个80%复杂业务逻辑和20%CRUD的应用程序,反之亦然。

在过去,我使用了某种命令模式并拥有类似ComplexFooCMDEvenMoreComplexBarCMD的类,但总是最终得到一堆InsertFooUpdateFoo,{ {1}}和DeleteFoo以及一些SelectFoosCMDUpdateSomeValuesOfFoo。所有这些都生活在BLL中。

最近,在不太复杂的业务逻辑应用程序中,我使用了类似SelectSomeFoos之类的服务模式,但这些服务模式还包含预期的FooServiceinsertFooupdateFoo。在每个服务上使用这些方法,甚至只提供将这些方法暴露给表示层的服务,感觉就像许多锅炉板代码一样。

是否有适合CRUD部分和应用程序其余部分的模式,或者我应该为应用程序的不同部分使用不同的模式?

2 个答案:

答案 0 :(得分:0)

我不认为CRUD是业务规则。

我不确定是否存在一种规则,例如“为首选客户提供百分比折扣,这是他们迄今为止销售量的函数”或“不在用户界面中为客户提供此选项公司地址来自这个州名单“。

业务规则并不总是那么整洁。

答案 1 :(得分:0)

我强烈建议您阅读behavior-driven development。我认为它会引导你朝着正确的方向前进。

我读过的关于这个主题的最好的书是The RSpec Book但如果你要被许多以Ruby为中心的例子推迟,你可能想看看你最喜欢的其他资源语言。

简而言之,您的问题的答案是:让您的测试指导您的体系结构,并让您的应用程序所需的行为指导您的测试。