假设我有一个80%复杂业务逻辑和20%CRUD的应用程序,反之亦然。
在过去,我使用了某种命令模式并拥有类似ComplexFooCMD
或EvenMoreComplexBarCMD
的类,但总是最终得到一堆InsertFoo
,UpdateFoo
,{ {1}}和DeleteFoo
以及一些SelectFoosCMD
或UpdateSomeValuesOfFoo
。所有这些都生活在BLL中。
最近,在不太复杂的业务逻辑应用程序中,我使用了类似SelectSomeFoos
之类的服务模式,但这些服务模式还包含预期的FooService
,insertFoo
和updateFoo
。在每个服务上使用这些方法,甚至只提供将这些方法暴露给表示层的服务,感觉就像许多锅炉板代码一样。
是否有适合CRUD部分和应用程序其余部分的模式,或者我应该为应用程序的不同部分使用不同的模式?
答案 0 :(得分:0)
我不认为CRUD是业务规则。
我不确定是否存在一种规则,例如“为首选客户提供百分比折扣,这是他们迄今为止销售量的函数”或“不在用户界面中为客户提供此选项公司地址来自这个州名单“。
业务规则并不总是那么整洁。
答案 1 :(得分:0)
我强烈建议您阅读behavior-driven development。我认为它会引导你朝着正确的方向前进。
我读过的关于这个主题的最好的书是The RSpec Book但如果你要被许多以Ruby为中心的例子推迟,你可能想看看你最喜欢的其他资源语言。
简而言之,您的问题的答案是:让您的测试指导您的体系结构,并让您的应用程序所需的行为指导您的测试。