作者回复: 好的👌
作者回复: 👍
作者回复: 可以的呀 数据访问层也是可以独立部署的,controller也是独立部署的web服务
作者回复: controller层的逻辑有区别,一种是需要创建用户,一种是不需要,需要提供两个service方法,每个方法编排不同的manager层的原子方法。当然也可以提供一个service方法,使用不同的参数来区分。但这是一个简单的例子,引申来看,同一个服务接口,针对不同的场景可能会有一些差异,这种差异要在service层屏蔽,不应该蔓延到controller层
作者回复: 在我来看业务逻辑放在manager,service来编排manager的原子服务
作者回复: 业务类的校验放在service层,一般性的参数校验可以放在web层,可以通用化
作者回复: 是的呢
作者回复: 我理解你说的防腐层就是manager层,而我说的manager层也封装了数据访问层,提供原子的服务接口,而service层是对这些原子接口的编排,所以说尽量不要数据层打交道。
当然每个团队可能有更合适的分层方式
作者回复: 我理解简单的业务可以不抽取manager,直接调用dao
作者回复: 是的
作者回复: 是苹果自带的keynote
作者回复: 贫血模型把数据和行为区分开,层次上更清晰,但是呢不够面向对象,因为对象肯定是有数据和行为的
充血模型是把数据和行为混在一起,缺点是我就不知道业务逻辑是写在biz层还是领域模型里面。
我更倾向于贫血模型吧,因为我觉得大团队里面很难规范哪些放在领域模型里面,哪些放在biz层,所以干脆就都放在biz层就好了
作者回复: 是的,分层的方式也是不断演进的
作者回复: 相关领域的知识的确是大同小异~大厂的实践也基本类似~多学、多看、多练、多思,不久就会成为更好的你
作者回复: 是的
作者回复: 嗯那 是一种更细粒度的拆分
作者回复: SRP是一个类有单一的职责,是期望功能尽量内聚到一个类中。也许功能这个词儿不准确,不过思想是这样的。
作者回复: 也是有分层的,只是不像业务系统这样分为典型的三层架构
作者回复: 业务逻辑就是你的产品逻辑,比如创建用户要做些啥。
manager层的原子服务指的是实现单一功能的服务。
事务应该是在service层
编辑回复: 苹果自带的Keynote哦😜