成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

強烈建議在項目中使用四層架構模型

開發(fā) 架構
用戶接口層將應用層的服務按照一定協(xié)議對外暴露。用戶接口層接收用戶請求,并將請求的參數(shù)經(jīng)過處理后,傳遞給應用層進行處理,最后將應用層的處理結果按照一定的協(xié)議向調(diào)用 者返回。

經(jīng)典的四層架構將軟件系統(tǒng)分為四個層次,每個層次都有不同的職責和功能。經(jīng)典的四層 架構如圖1所示。

圖1 經(jīng)典的四層架構圖1 經(jīng)典的四層架構

1.? 用戶接口(User Interface)層

用戶接口層將應用層的服務按照一定協(xié)議對外暴露。用戶接口層接收用戶請求,并將請求的參數(shù)經(jīng)過處理后,傳遞給應用層進行處理,最后將應用層的處理結果按照一定的協(xié)議向調(diào)用 者返回。

用戶接口層是應用的最上層,通常表現(xiàn)為 Controller 接口、RPC 服務提供者的實現(xiàn)類、定 時任務、消息隊列的監(jiān)聽器等。

用戶接口層不應包含任何業(yè)務處理邏輯,僅用于暴露應用層服務。用戶接口層的代碼應該非常簡單。

2.? 應用(Application)層

應用層協(xié)調(diào)領域模型和基礎設施層完成業(yè)務操作。應用層自身不包含業(yè)務邏輯處理的代 碼,它收到來自用戶接口層的請求后,通過基礎設施層加載領域模型(聚合根),再由領域模 型完成業(yè)務操作,最后由基礎設施層持久化領域模型。

應用層的代碼也應該是簡單的,僅用于編排基礎設施和領域模型的執(zhí)行過程,既不涉及業(yè)務操作,也不涉及基礎設施的技術實現(xiàn)。

3.? 領域(Domain)層

領域層是對業(yè)務進行領域建模的結果,包含所有的領域模型,如實體、值對象、領域服務等。

所有的業(yè)務概念、業(yè)務規(guī)則、業(yè)務流程都應在領域層中表達。

領域層不包括任何技術細節(jié),相關的倉儲、工廠、網(wǎng)關等基礎設施應先在領域層進行定義,然后交給基礎設施層或者應用層進行實現(xiàn)。

4.? 基礎設施(Infrastructure)層

基礎設施層負責實現(xiàn)領域層定義的基礎設施接口,例如,加載和保存聚合根的倉儲 (Repository)接口、調(diào)用外部服務的網(wǎng)關(Gateway)接口、發(fā)布領域事件到消息中間件的消 息發(fā)布(Publisher)接口等。基礎設施層實現(xiàn)這些接口后,供應用層調(diào)用。

基礎設施層僅包含技術實現(xiàn)細節(jié),不包含任何業(yè)務處理邏輯。基礎設施層接口的輸入和輸 出應該是領域模型或基礎數(shù)據(jù)類型。

端口和適配器架構

端口和適配器架構(Ports and Adapters Architecture)又被稱為六邊形架構(Hexagonal Architecture),其核心思想是將業(yè)務邏輯從技術細節(jié)中解耦,使業(yè)務邏輯能夠獨立于任何特定的技術實現(xiàn)。

端口和適配器架構通過引入兩個關鍵概念來達到這個目標:端口(Port)和適配 器(Adapter)。 

端口是系統(tǒng)與外部進行交互的接口,它定義了系統(tǒng)對外提供的服務以及需要外部提供的支持。

“定義系統(tǒng)對外提供的服務”通常是指定義可以被外部系統(tǒng)調(diào)用的接口,將業(yè)務邏輯實現(xiàn)在接 口的實現(xiàn)類中,這種端口屬于入站端口(Inbound Port)。

“定義需要外部提供的支持”,是指執(zhí)行業(yè)務邏輯的過程中,有時候需要依賴外部服務(例如從外部服務加載某些數(shù)據(jù)以用于完成計算),此時定義一個接口,通過調(diào)用該接口完成外部調(diào)用,這種端口屬于出站端口(Outbound Port)。 

適配器則細分為主動適配器(Driving Adapter)和被動適配器(Driven Adapter)兩種。主 動適配器用于對外暴露端口,例如將端口暴露為 RESTful 接口,或者將端口暴露為 RPC 服務;被動適配器用于實現(xiàn)業(yè)務邏輯執(zhí)行過程中需要使用的端口,如外部調(diào)用網(wǎng)關等。

六邊形架構如圖2所示。

圖2 六邊形架構圖2 六邊形架構

端口和適配器之間的交互關系如圖 2-4 所示。

圖3 端口和適配器之間的交互關系圖3 端口和適配器之間的交互關系

主動適配器偽代碼如下。

/**  
* 主動適配器 , 將創(chuàng)建文章的 Port 暴露為 HTTP 服務  
*/ 
@RestController 
public class ArticleController {
@Resource  
private ArticleService service; 
@RequestMapping("/create")  
public void create(DTO dto) {
  service.create(dto);
  } 
}

進站端口偽代碼如下。

public interface ArticleService {
  /**
  * 端口和適配器架構中的 Port, 提供創(chuàng)建文章的能力
  * 這是一個進站端口
  * @param dto
  */
  void create(DTO dto); 
}

出站端口偽代碼如下。 

public interface AuthorServiceGateway {
  /**
  * 端口和適配器架構中的 Port, 查詢作者信息
  * 這是一個出站端口
  * @param authorId
  * @return
  */
  AuthorDto queryAuthor(String authorId);
 }

被動適配器偽代碼如下。

/**
 * 被動適配器
 */
public interface AuthorServiceGatewayImpl implements AuthorServiceGateway {
  /**
  * 作家 RPC 服務
 */
@Resource
private AuthorServiceRpc rpc;
AuthorDto queryAuthor(String authorId) { 
// 拼裝報文
 AuthorRequest req = this.createRequest(authorId); 
// 執(zhí)行 RPC 查詢
AuthorResponse res = rpc.queryAuthor(); 
// 解析查詢結果并返回
return this.handleAuthorResponse(res);
  }
 }
責任編輯:武曉燕 來源: JAVA日知錄
相關推薦

2024-08-19 01:10:00

RedisGo代碼

2023-05-25 19:23:29

2021-03-02 07:13:54

Java8版本升級

2021-01-13 07:01:51

Adobe Flash Flash Playe

2021-11-05 07:47:55

API計算任務

2021-01-05 05:36:08

Windows10操作系統(tǒng)Flash

2024-07-11 16:25:44

2011-08-25 09:17:24

庫克喬布斯蘋果

2021-09-27 10:52:06

React工具庫開發(fā)

2009-06-24 17:34:58

使用JSF的經(jīng)驗

2018-12-04 15:50:03

轉行Python爬蟲

2015-08-03 11:45:37

storyboard

2023-11-30 09:00:00

TypeScript開發(fā)

2018-08-21 09:00:30

Linuxtop命令

2021-08-27 06:55:37

數(shù)據(jù)數(shù)據(jù)分析大數(shù)據(jù)

2017-07-04 19:02:17

ReacRedux 項目

2024-09-10 09:05:12

SpringREST并發(fā)

2023-05-15 08:32:45

2021-04-16 23:23:05

工具macOS系統(tǒng)

2018-05-02 09:18:17

Linux技巧嵌入式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 337p日本欧洲亚洲大胆 | 欧美1—12sexvideos | 国产午夜精品视频 | 久久精品国产一区二区电影 | 激情视频中文字幕 | 国产成人精品免高潮在线观看 | 99久久精品免费 | 亚州av在线 | 中国xxxx性xxxx产国 | 亚洲欧美国产精品久久 | 国产精品久久久久久久久久东京 | 国产精品久久久久久久久久久久冷 | 日本福利片 | 一级黄a| 人人精品 | 中文字幕欧美日韩一区 | 国产91在线视频 | 成人av在线播放 | 中文字幕在线观看一区 | 男人的天堂在线视频 | 盗摄精品av一区二区三区 | 热久久999 | 欧洲毛片| 国产激情一区二区三区 | 在线天堂免费中文字幕视频 | 成人一级毛片 | 瑞克和莫蒂第五季在线观看 | 91 在线| 国产精品国产三级国产播12软件 | 中文字幕精品一区二区三区精品 | 国产成人在线一区 | 精品毛片 | 亚洲一区二区在线视频 | 毛片网在线观看 | 久草福利 | 欧美成人精品一区二区男人看 | 一区二区三区四区毛片 | 粉嫩高清一区二区三区 | 精品久久久久久久久久久久久久 | 国产伦精品一区二区 | 亚洲欧美中文日韩在线v日本 |