zoukankan      html  css  js  c++  java
  • 业务对象的贫血模型与充血模型

    业务对象是指那些从实际业务场景中抽象出来的对象,这些对象在代码中对应的就是一些业务对象类。 

    在常见的SSH框架的开发中,一般的做法是将每一个业务对象对应一个POLO,当然这是为了方便使用ORM框架。当我们把业务对象实现为POJO的时候,我们实际上是在使用业务对象贫血模式。下面是业务对象贫血模型图:(业务对象类既领域层的model) 

    6d1779e3-036c-3305-baa9-7118ba7e385a.png


    在贫血模型中,业务对象仅仅包含数据而不包含行为,他的作用只是数据的载体或者说是数据的传递介质。系统的业务逻辑全部放到业务逻辑层,会导致业务逻辑层比较庞大。 

    为了避免出现贫血模型中业务逻辑层较庞大的缺点,考虑将一些恰当的业务逻辑放到业务对象类中,即贫血模型的POJO类中。下面是业务对象充血模型图:(业务对象类既领域层的model) 

    8c0c600b-fd08-3563-b500-0b9fe480c4ff.png

    在充血模型中,业务对象既包含数据又包含行为,他的作用不再只是数据的载体而是一个真正有行为的对象。此时,领域层作为软件体系的一个层次出现而非贫血模式中的辅助的角色。 

    贫血模型和充血模型,两个各有优势: 

    贫血模型的系统层次清楚,但是不够面向对象。在业务逻辑层处理所有的业务逻辑,太过沉重。 

    充血模型足够面向对象,业务逻辑层符合单一职责原则,不像在贫血模型里面那样太过沉重。但是如何将业务逻辑划分到业务层和领域层比较含糊。 

    参考:业务对象的贫血模型与充血模型

  • 相关阅读:
    深入理解Java中停止线程
    浅入浅出JDBC————1分钟了解JDBC
    Java多线程入门中几个常用的方法
    创建Java多线程的两种方式和线程异常
    小白学习前端---第二天 HTML的基本属性————1
    Info类
    Control类
    demo 代码
    防作弊原理
    状态类
  • 原文地址:https://www.cnblogs.com/aspirant/p/9443166.html
Copyright © 2011-2022 走看看