第四章 分离领域

分层架构

用户界面层:负责向用户显示信息和解释用户指令

应用层:要尽量简单,不包含业务规则或者知识,只为下一层领域对象协调任务,分配工作。

领域层:负责表达业务概念,业务状态信息以及业务规则,反映业务情况的状态由本层控制且使用的。

基础设施层:为上面各层提供通用的技术能力,为应用层传递消息,为领域层提供持久化机制,为用户界面层绘制屏幕组件。

将各层级关联起来

上层可以直接使用或操作下层元素,方法是通过调用下层元素的公共接口,保持对下层元素的引用。如果下层元素需要与上层元素进行通信,则需要采用另一种通信机制,使用架构模式来连接上下层,如回调模式或者观察者模式或者MVC。应用层和领域层可以调用基础设施层所提供的service。如果service的范围选择合理,接口设计完善,那么通过把详细行为封装到服务接口中,调用程序就可以保持与service的松散连接。

反模式

如果一个经验不丰富的项目团队要完成一个简单的项目,却决定使用model-drive-disgn以及layered architecture,那么项目组要经历艰难的学习过程。团队不得不去掌握复杂的新技术,艰难的学习对象建模。再考虑到时间成本。所以不是所有的都适合领域驱动设计。优点:效率高,短时间内实现简单的应用程序。对开发人员要求低。程序之间彼此独立可以准确安排小模块交付。额外扩展简单的功能也很容易。缺点:不通过数据库很难继承应用模块。没有对行为的抽象,当操作用到业务规则时,都必须重复这些规则。抽象的缺乏限制了重构的选择。没有很好的办法来实现复杂的功能。

如果一个架构能够把那些与领域相关的代码隔离出来,得到一个内聚的领域设计,同时又使领域与其他部分保持松散耦合,那么这种架构也许可以支持领域驱动设计。

ps:java天生可以应对大型的复杂的工程项目,所以应该尽可能使用领域驱动设计!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值