玩轉C#之【軟體分層架構-三層式架構】

更新於 發佈於 閱讀時間約 1 分鐘

介紹

分層架構模式,是將一個軟體系統進行分層,每個軟體系統都去要通過層來隔離不同的關注點,其中最為經典的就是三層架構以及領域驅動設計提出的四層架構。
📷

三層式架構

下面會介紹每一層專門要處理的事情
最常是用的分層方式
  • 展示層 : Controller
    此層專門處理外部使用者互動的部份,有接收的 Parameter 與 回傳 的 ViewModel 兩種類別。
  • 業務層 : Service
    此層專門處理主要的商業邏輯,接收展示層的參數 Dto 並回傳 實體 Dto
  • 資料層 : Repoitory
    此層專門對資料做存取,不做其他商業邏輯,接收商業邏層的參數 Entity 並回傳 實體 Entity
  • 共用層 : Common
    此層主要放每ㄧ層會用到的共用模組Entity、Dto、Enum
至於每層模組的命名方式,每間公司都不太ㄧ樣
📷

參考資料

本篇已同步發表至個人部落格
https://moushih.com/2022ithome06/
鐵人賽文章
為什麼會看到廣告
avatar-img
8會員
39內容數
我是這個部落格的作者,喜歡分享有關投資 💰、軟體開發 💻、占卜 🔮 和虛擬貨幣 🚀 的知識和經驗。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
一代軍師 的其他內容
介紹 類似Windows排程的一個套件,不過他有Dashboard可以看 可以用在商業用途 使用情境 簡單來說如果你需要定時的執行某一段程式就可以使用這個套件來幫你完成。 優點 Simple 開發簡易、安裝簡單、方便部署 Persistent 工作任務可存放於多種儲存裝置 任務執行方式 版本 📷
Swagger是SmartBear Software的API開發人員套件工具,它是OpenAPI規範的基礎規範。 簡單來說就是 API 文件產生器。
在上一篇文章介紹過API之後,大家應該會很好奇寫好了一隻API應該怎麼測試巴?
你想像有一個黑盒子,它會跟你說輸入一個input,而會得出什麼Output,而你要把這個Input傳遞給黑盒子是透過http的方式
本系列文章主要是分享本人剛從外部培訓單位轉職成功後,剛踏入職場所學習到的新知識及學習方向。
單一職責原則(Single Responsibility Principle) 里氏替換原則(Liskov Substitution Principle) 依賴反轉原則(Dependence Inversion Principle) 最少知識原則(得墨忒耳定律)(Law Of Demeter)
介紹 類似Windows排程的一個套件,不過他有Dashboard可以看 可以用在商業用途 使用情境 簡單來說如果你需要定時的執行某一段程式就可以使用這個套件來幫你完成。 優點 Simple 開發簡易、安裝簡單、方便部署 Persistent 工作任務可存放於多種儲存裝置 任務執行方式 版本 📷
Swagger是SmartBear Software的API開發人員套件工具,它是OpenAPI規範的基礎規範。 簡單來說就是 API 文件產生器。
在上一篇文章介紹過API之後,大家應該會很好奇寫好了一隻API應該怎麼測試巴?
你想像有一個黑盒子,它會跟你說輸入一個input,而會得出什麼Output,而你要把這個Input傳遞給黑盒子是透過http的方式
本系列文章主要是分享本人剛從外部培訓單位轉職成功後,剛踏入職場所學習到的新知識及學習方向。
單一職責原則(Single Responsibility Principle) 里氏替換原則(Liskov Substitution Principle) 依賴反轉原則(Dependence Inversion Principle) 最少知識原則(得墨忒耳定律)(Law Of Demeter)
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在這篇文章中,我們深入探討系統架構的不同層面,尤其關注於軟體層面。文章介紹了幾種常見的架構模式,包括一體化架構、微服務架構、事件驅動架構、服務導向架構及無服務架構,並討論了其優缺點。此外,我們還探討了技術選型與性能優化的重要性,並提供實用的建議,幫助讀者在未來的軟體開發中做出更明智的選擇。
Thumbnail
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
在課程設計上,我往往會以客層設計教學的系統。但我逐漸發現只同一個用系統,除了貼近我自己的成長進程,更方便學習者記得。沒有一個系統是不會隨著人的成長和狀態一起演化的。我在設計新的系統時將以往常用的「四層系統」以及「3+1系統」重新簡單在課程設計筆記中介紹。
區塊鏈Layer 1(L1) Layer 2 (L2) Layer 3 (L3) 是什麼意思? 將區塊鏈技術中的L3主網與免費部落格平台類比,可以更形象地理解其功能和用途。 免費部落格平台類比: 平台(Layer 1):免費部落格平台本身,例如WordPress或Blogger,是一個基礎設施
※ 工廠模式 定義: 工廠模式是一種實現了「工廠」概念的物件導向設計模式。它提供一個通用的工廠介面,將創建instance(實例)的程式碼交由子類別各自實現,並根據需求去動態地生成相應的物件。這種模式將物件的創建邏輯與使用邏輯分開,使程式碼更容易維護和擴展。 特點: 具有高度標準化和同質性的
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
微服務是一種分散式的專案架構,換個說法,就是將一個專案做“應用切割”,切出數個可以獨立執行的應用,如此可以降低耦合性,並提升敏捷性。 特點 低耦合 獨立部署 高可維護性 高可測試性
Thumbnail
本文探討了系統思維的重要性,強調理解元素、關係及其背後規律對洞察複雜系統至關重要。書中以商業模式變化為例,展示如何透過系統思維識別時代機遇,提升競爭力。此外,強調系統思維在學習中的應用,促進跨學科理解、批判性思維和解決問題能力,為適應未來變化奠定基礎。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在這篇文章中,我們深入探討系統架構的不同層面,尤其關注於軟體層面。文章介紹了幾種常見的架構模式,包括一體化架構、微服務架構、事件驅動架構、服務導向架構及無服務架構,並討論了其優缺點。此外,我們還探討了技術選型與性能優化的重要性,並提供實用的建議,幫助讀者在未來的軟體開發中做出更明智的選擇。
Thumbnail
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
在課程設計上,我往往會以客層設計教學的系統。但我逐漸發現只同一個用系統,除了貼近我自己的成長進程,更方便學習者記得。沒有一個系統是不會隨著人的成長和狀態一起演化的。我在設計新的系統時將以往常用的「四層系統」以及「3+1系統」重新簡單在課程設計筆記中介紹。
區塊鏈Layer 1(L1) Layer 2 (L2) Layer 3 (L3) 是什麼意思? 將區塊鏈技術中的L3主網與免費部落格平台類比,可以更形象地理解其功能和用途。 免費部落格平台類比: 平台(Layer 1):免費部落格平台本身,例如WordPress或Blogger,是一個基礎設施
※ 工廠模式 定義: 工廠模式是一種實現了「工廠」概念的物件導向設計模式。它提供一個通用的工廠介面,將創建instance(實例)的程式碼交由子類別各自實現,並根據需求去動態地生成相應的物件。這種模式將物件的創建邏輯與使用邏輯分開,使程式碼更容易維護和擴展。 特點: 具有高度標準化和同質性的
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
微服務是一種分散式的專案架構,換個說法,就是將一個專案做“應用切割”,切出數個可以獨立執行的應用,如此可以降低耦合性,並提升敏捷性。 特點 低耦合 獨立部署 高可維護性 高可測試性
Thumbnail
本文探討了系統思維的重要性,強調理解元素、關係及其背後規律對洞察複雜系統至關重要。書中以商業模式變化為例,展示如何透過系統思維識別時代機遇,提升競爭力。此外,強調系統思維在學習中的應用,促進跨學科理解、批判性思維和解決問題能力,為適應未來變化奠定基礎。