Spring annotation Service 介紹

SC Tuan
Sep 13, 2024

--

深入去看了官方介紹後,我想在這邊做個筆記。

Service

在 Spring 裡面,class 上標記了 Service 就表示他是一種服務,原文中寫道,Service 的定義出自於 Domain-Driven Design (Evans, 2003)的一段話:

an operation offered as an interface that stands alone in the model, with no encapsulated state.

這裡有幾個重要觀念:

  1. 無狀態(statelessness)
  2. 基於介面(interface-based)
  3. 關注點分離(Separation of Concerns)

以下進一步說明

無狀態

簡單說,就是他不會保存任何資料,他提供的方法僅和該方法輸入的參數有關,也只和輸入的參數有關。每一次呼叫方法,都是獨立不互相影響的。

基於介面

呼叫他的方法時,不需要關注他的實作細節,服務應該提供清楚的介面給消費者(consumer)使用。

關注點分離

應用程式中的不同層之間應該要良好的分開來,服務類別應該把業務邏輯良好的封裝起來,和其他層別考慮的重點分開(比方保存資料層)。

Business Service Facade

服務應該作為「簡化複雜操作子系統」的門面(Facade),他組織協調許多不同的子元件進行複雜的操作。

  • Simplified Interaction: 提供清晰的介面給客戶端進行互動,隱藏底下統的複雜度。
  • Orchestration: 協調操作完成業務需求。
  • Reusability: 集中業務邏輯操作,方便重用

--

--

SC Tuan
SC Tuan

Written by SC Tuan

iOS developer(Obj-C & Swift) / Web developer (Java, Javascript, CSS,HTML)

No responses yet