《企业应用架构模式》之模式列表

来源:互联网 发布:动漫 惊艳 音乐 知乎 编辑:程序博客网 时间:2024/04/30 08:39

事务脚本模式:一个过程来控制逻辑
领域模型模式:每个对象承担一部分逻辑(一个订单)
表模式:一个对象承担多项逻辑,所有的对象承担全部逻辑(一个订单集合处理所有逻辑)

 

模式

模式含义

运行机制

使用时机

归类

Active Record
活动记录

包装数据库表或视图中的行、封装数据库访问、并将业务逻辑
加到该数据上的对象。

在简单的应用中,领域模型和数据表有很好的对应的。可以这样理解活动记录(内存记录),它是在行数据模型里面逐渐添加领域逻辑的结果。


活动记录模型只能应用于领域逻辑简单的情况。

A

Application Controller
应用控制器

处理屏幕导航和应用流程的集中控制点。

 

JEE核心模式类似

 

Associate Table Mapping
关联表映射

将关联存储为表形式,并通过外键将与之相关的
表连接起来

 

 

 

Class Table Inheritance
类表集成

表示了类的继承层次,每个类都对应一个表

字段只包括该类的字段

 

Client Session State
粗粒度锁

将会话状态存储于客户端

 

 

 

Coarse Grain Lock
粗粒度锁

用一个锁将一组相关对象都锁起来

 

 

 

Concrete Table Inheritance
具体表继承

表示了类的继承层次,层次中的每一个具体类对
应一个表。

字段包括从父类集成的

 

Data Mapper
数据映射器

由映射器组成的一个层次,它在对象和数据库之间移动数据,
并保证它们之间相互独立、映射器间相互独立

用数据映射器来隔离领域模型和数据库自己的关系。
数据映射器完成领域模型类和数据库表的一一映射。
数据映射器是一个很好的持久化机制。

领域模型复杂就应该使用了

A

Data Transfer Object
数据传输对象

在进程间进行数据传递的对象,目的是减少进程间
方法调用的次数

 

 

 

Database Session State
数据库会话状态

将会话状态作为提交的数据存储于数据库中

 

 

 

Dependent Mapping
依赖映射

让一个类为一个子类进行数据库映射。

 

 

 

Domain Model
领域模型

既包含行为,又包含数据的领域的对象模型。

 

 

 

Embedded Value
嵌入值

将一个对象映射到另一个对象的表的多个域中。

 

 

 

Foreign Key Mapping
(外键映射)

将对象间的一个关联映射成表间一个外键引用。

 

 

 

Front Controller
(前端控制器)

处理Web站点中所有请求的控制器。

 

 

 

Gateway(入口)

封装对外部系统或资源进行访问的对象。

 

 

 

Identity Field(标识域)

将数据库ID域保存到对象中,用来维护一个内存对象与一个数据
库行之间的对应关系。

 

 

 

Identity Map(标识映射)

通过将每个被加载对象放入一个映射中,确保每个对象都被加载
且仅加载一次。当引用对象时使用映射来查找对象。

 

 

 

Implicit Lock(隐含锁)

允许框架或层超类型申请离线锁。

 

 

 

Inheritance Mappers(继承映射器)

组织数据库映射器的一种结构,能处理继承层次。

 

 

 

Layer Supertype(层超类型)

某一层中充当所有类型的超类型的类型。

 

 

 

Lazy Load(延迟加载)

对象中并不包含所有想要的数据,但是知道如何获取这些数据

 

 

 

Mapper(映射器

在两个独立对象间建立起通信的对象

 

 

 

Metadata Mapping(元数据映射)

在元数据中保存对象-关系映射的细节

元数据文件将对象映射到数据库

元数据使问题简单

 

Model View Controller(模型-视图-控制器)

将用户界面交互分割成三个不同的角色

 

 

 

Money(货币)

表示货币值

 

 

 

Optimistic Offline Lock(乐观离线锁)

通过检测冲突并回滚事务来防止并发业务事务间的
冲突

 

 

 

Page Controller(页控制器)

处理Web站点中特定页面请求或动作的对象

 

 

 

Pessimistic Offline Lock(悲观离线锁)

通过每次只允许一个业务事务访问数据来防止并发
业务事务间的冲突

 

 

 

Plugin(插件

在配置阶段而不是在编译阶段连接类

 

 

 

Query Object(查询对象)

表示数据库查询的对象

 

 

 

Record Set(记录集)

列表数据的内存表示

 

 

 

Registry(注册表)

其他对象可以通过其找到公共对象或服务的一个知名对象

 

 

 

Remote Façade(远程外观)

在细粒度对象上提供粗粒度的外观,以改进跨网络的有效性

 

 

 

Repository(资源库)

通过用来访问领域对象的一个类似集合的接口,在领域与数据映射
层之间进行协调。

 

 

 

Row Data Gateway(行数据入口

在一个数据源中充当到一条记录的入口的对象。每条记
录(数据库行)对应一个对象实例。

 

 

 

Separated Interface(分离接口)

在一个与其实现分离的包中定义一个接口

 

 

 

Serialized LOB(序列化LOB

通过序列化方法将一张对象图保存在一个大对象(LOB
中,然后将大对象存储在数据库的域中。

 

 

 

Server Session State(服务器会话状态)

将会话状态以序列化方式保存在一个服务器系统上

 

 

 

Service Layer(服务层)

通过一个服务层来定义应用的边界,这个服务层建立了一组可用
操作并协调应用程序对每个操作请求的响应。

 

 

 

Service Stub(服务桩)

在测试过程中去除对有问题服务的依赖。

 

 

 

Single Table Inheritance(单表继承)

通过一个表来表示类的一个继承层次,表中各列对应
不同类中的所有域。

 

 

 

Special Case(特殊情况

为特定情况提供特殊行为的一个子类

 

 

 

Table Data Gateway(表数据入口

充当到数据库表的入口的对象。一个实例处理表中的所有行

 

 

 

Table Module(表模块)

通过一个实例处理数据库表或视图中所有行的业务逻辑

 

 

 

Template View(模板视图

通过在HTML页面中嵌入标记来将有关信息融入HTML

 

 

 

Transaction Script(事务脚本)

通过过程来组织业务逻辑。其中,每个过程处理来自表现
层的一个请求。

 

 

 

Transform View(转换视图)

逐条处理领域数据并将它们转换成HTML的一个视图

 

 

 

Two Step View(两步视图

通过两步将领域数据转换成HTML:首先形成某种逻辑页面,
然后将逻辑页面转换成HTML

 

 

 

Unit of Work(工作单元)

维护由业务事务所影响的对象列表,并协调更改的写出以及并
发问题的解决。

一个控制对象,它复杂跟踪数据的读取、修改和存储的情况。
防止同一个数据被同时读取、多个用户在同时操作同一条数据。
它充当了数据映射器的控制器。在没有工作单元的时候,由领域类来充当这个控制器的。


它其实是领域逻辑里面分解出来的,专门负责数据一致性控制的控制对象。

A

Value Object(值对象)

类似于金钱或数据范围的、小而简单的对象,其相等性不是基于ID