业务层组织模式

四种组织业务逻辑模式:事务脚本模式、活动记录模式、贫血型模式和领域模式

Transaction Script模式

  • 事务脚本模式是组织业务逻辑的模式中最简单,也是最容易理解的。采用面向过程的方式来组织业务逻辑。
  • 系统的一个流程又会被实现在为一个方法,一个方法会做完所有的事情。

优点:

  • 它是大多数开发者都能够理解的一个简单的过程模型。
  • 它能够与使用行数据入口或者表数据入口的简单数据源很好的协作。

缺点:当系统逐渐变大,业务逻辑也逐渐变复杂的时候,它的问题就会凸显出来,系统中存在大量的方法,而且方法中到处都是重复代码。


Active Record模式

  • 活动记录模式:当系统中的业务类和数据库中表存在一一对应关系的时候,可以采用这个模式。
  • 每个业务对象都代表了数据表中的一行数据,并且业务对象还包含了数据的增删改查方法
  • 每个业务对象各自负责自己的数据持久化逻辑和相关的业务逻辑

 

Domain Model模式

  • 在领域模型中,每个对象都承担了一部分的逻辑
  • 领域模型中的没有业务类都是对现实世界中业务概念的抽象,它不仅仅包含业务活动中的数据,还包含了业务规则
  • 把领域概念转换为业务类的过程叫“领域建模”,建模的结果就是得到业务模型。
  • 与活动记录模式区别:领域模型的业务实体对如何持久化自己的数据一无所知,并且业务类也没有必要和数据模型一一对应。

 

 Anemic Domain Model模式与实战

  • 贫血型领域模型将与自身相关的业务处理逻辑全部转移到模型之外
  • 缺点是领域服务类中的代码更加结构化了

架构师写概要设计文档 架构设计的流程_数据库

 

 业务层常用的设计模式

工厂方法模式

工厂方法(Factory Method)模式:定义一个创建对象的接口,但由子类来决定要实例化的类是哪个。主要目的就是隐藏对象的创建。

在工厂方法模式中体现了DIP依赖倒置原则。

架构师写概要设计文档 架构设计的流程_业务逻辑_02

 

装饰者模式

 装饰者模式体现了一个很重要的设计思想:优先采用组合。而不是继承。

架构师写概要设计文档 架构设计的流程_设计模式_03

模板方法模式

  • 模板方法模式定义了一个操作算法的骨架,而将一些步骤延迟到了子类。模板方法模式使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
  • 最直观的理解就是“模板”:包括变化和不变得两个部分,将变化的部分给子类实现。
  • 模板方法中有定义“钩子”。钩子是一种被声明在抽象类中的方法。

状态模式

状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

策略模式

  • 策略模式定义了一系列算法,并将它们分别封装了起来,让它们之间可以相互替换。
  • 此模式让算法的变化独立于使用算法的客户

 

 业务层常用的企业架构模式

层超类型模式

层超类型(layer Super),让某个类型充当一层所有类型的超类。

层超类型模式的思想极为简单:通过继承达到重用的目的。