《企業應用架構模式》之模式列表

事務腳本模式:一個過程來控制邏輯
領域模型模式:每個對象承擔一部分邏輯(一個訂單)
表模式:一個對象承擔多項邏輯,所有的對象承擔全部邏輯(一個訂單集合處理所有邏輯)

 

模式

模式含義

運行機制

使用時機

歸類

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

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章