Golang - Design Pattern #23: 3-tier 架構

更新 發佈閱讀 3 分鐘
raw-image


📊 層次化的系統設計 📊

在設計軟體應用程式時,為了保持模組化、可維護性和可擴展性,開發人員通常會使用多層架構。3-tier(三層)架構是其中最常見的一種,它基本上分為三個主要層次:表示層、邏輯層和數據層。


3-tier 架構 📚🖥️🗄️

  1. 表示層 (Presentation Layer) 🖥️: 這是用戶直接互動的部分,通常包括使用者介面。它可以是網頁、桌面應用程式或移動應用程式的前端。
  2. 邏輯層 (Business Logic Layer) 📊: 這裡是應用程式的核心部分,執行具體的業務邏輯,如計算、數據處理和規則驗證。
  3. 數據層 (Data Layer) 🗄️: 負責管理數據庫連接、數據持久化和資料檢索。


實例

📚 書店系統

想像一個簡單的書店管理系統:


  1. 表示層 - 使用者可以瀏覽書籍、查看詳細信息和加入購物車。
func displayBooks() {
books := businessLayer.getAvailableBooks()
for _, book := range books {
fmt.Println(book.Title, book.Author)
}
}

func viewBookDetails(id int) {
book := businessLayer.getBookDetails(id)
fmt.Println(book.Title, book.Author, book.Description)
}

func addToCart(id int) {
businessLayer.addBookToCart(id)
}
  1. 邏輯層 - 處理業務邏輯,如查找書籍、檢查存貨和更新購物車。
func getAvailableBooks() []Book {
return dataLayer.fetchBooks()
}

func getBookDetails(id int) Book {
return dataLayer.getBookById(id)
}

func addBookToCart(id int) {
if dataLayer.checkStock(id) {
dataLayer.updateCart(id)
} else {
fmt.Println("Book out of stock!")
}
}
  1. 數據層 - 與數據庫互動,提供邏輯層所需的數據。
func fetchBooks() []Book {
// Fetch books from database
}

func getBookById(id int) Book {
// Fetch a specific book by ID from database
}

func checkStock(id int) bool {
// Check if the book is in stock
}

func updateCart(id int) {
// Add book to user's cart in the database
}


結論 🏁

3-tier 架構提供了一個組織良好、模組化的方法來設計軟體應用程式。這不僅確保了應用程式的可維護性和可擴展性,而且還提高了重用和獨立開發的能力。透過這種分層的方法,開發者可以專注於一個特定部分,而不必擔心其他部分。

留言
avatar-img
KH Huang的沙龍
38會員
218內容數
歡迎來到【代碼的詩情】:探索程式語言之美 系列,這是一場優雅的程式之旅,透過詩歌的抒發,尋找不同程式語言的美感和精髓。 在這個系列中,我們將透過文字的韻律,深入探索多種程式語言的核心概念和語法,以及它們獨特的應用和技巧。每一篇詩歌都是一個故事,每一段代碼都是一句詩句,讓代碼的旋律和詩情在其中相互交織。
KH Huang的沙龍的其他內容
2023/09/06
嗨!今天我們來深入探討鏈式方法模式,也就是讓你可以一路連續調用方法,看起來好像在鏈接它們似的。那麼,讓我們馬上進入主題吧!
Thumbnail
2023/09/06
嗨!今天我們來深入探討鏈式方法模式,也就是讓你可以一路連續調用方法,看起來好像在鏈接它們似的。那麼,讓我們馬上進入主題吧!
Thumbnail
2023/09/03
嗨,大家好!今天我們來聊聊什麼是延遲評估模式,它的好處是啥,還有在 Go 裡面是怎麼玩的。
Thumbnail
2023/09/03
嗨,大家好!今天我們來聊聊什麼是延遲評估模式,它的好處是啥,還有在 Go 裡面是怎麼玩的。
Thumbnail
2023/09/03
在許多大型系統中,不同的子系統需要共享和修改某些資訊以達到一個共同目的。在這種情況下,傳統的方法可能會造成混亂和冗餘。這時,黑板模式出現了,它提供了一個統一的架構,讓這些子系統可以有效率地協作。
Thumbnail
2023/09/03
在許多大型系統中,不同的子系統需要共享和修改某些資訊以達到一個共同目的。在這種情況下,傳統的方法可能會造成混亂和冗餘。這時,黑板模式出現了,它提供了一個統一的架構,讓這些子系統可以有效率地協作。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
Thumbnail
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
Thumbnail
在許多大型系統中,不同的子系統需要共享和修改某些資訊以達到一個共同目的。在這種情況下,傳統的方法可能會造成混亂和冗餘。這時,黑板模式出現了,它提供了一個統一的架構,讓這些子系統可以有效率地協作。
Thumbnail
在許多大型系統中,不同的子系統需要共享和修改某些資訊以達到一個共同目的。在這種情況下,傳統的方法可能會造成混亂和冗餘。這時,黑板模式出現了,它提供了一個統一的架構,讓這些子系統可以有效率地協作。
Thumbnail
在設計軟體應用程式時,為了保持模組化、可維護性和可擴展性,開發人員通常會使用多層架構。3-tier(三層)架構是其中最常見的一種,它基本上分為三個主要層次:表示層、邏輯層和數據層。
Thumbnail
在設計軟體應用程式時,為了保持模組化、可維護性和可擴展性,開發人員通常會使用多層架構。3-tier(三層)架構是其中最常見的一種,它基本上分為三個主要層次:表示層、邏輯層和數據層。
Thumbnail
👨‍💻簡介 在程式開發的世界中,我們經常需要處理各式各樣的資料,可能是一個人的個人資訊,也可能是一個商品的詳細訊息。當我們面對這麼多的資料時,如何將它們有系統地整理起來,讓我們能夠輕鬆地找到所需,便成了一個重要的課題。這時,結構體的概念就像是一道曙光,為我們提供了一個非常有力的工具。 結
Thumbnail
👨‍💻簡介 在程式開發的世界中,我們經常需要處理各式各樣的資料,可能是一個人的個人資訊,也可能是一個商品的詳細訊息。當我們面對這麼多的資料時,如何將它們有系統地整理起來,讓我們能夠輕鬆地找到所需,便成了一個重要的課題。這時,結構體的概念就像是一道曙光,為我們提供了一個非常有力的工具。 結
Thumbnail
訪問者模式 (Visitor Pattern) 是一種設計模式,它允許開發者將新的操作新增到現有物件結構中,而不必修改該結構的內部代碼。該模式的重點是將操作和物件結構分離,提供一個彈性的方式新增新的行為。
Thumbnail
訪問者模式 (Visitor Pattern) 是一種設計模式,它允許開發者將新的操作新增到現有物件結構中,而不必修改該結構的內部代碼。該模式的重點是將操作和物件結構分離,提供一個彈性的方式新增新的行為。
Thumbnail
當我們在處理一連串的事件或請求時,責任鏈模式 (Chain of Responsibility Pattern) 就像一位隱形的助手🤖,幫助我們將這些請求一一分發給合適的處理者。
Thumbnail
當我們在處理一連串的事件或請求時,責任鏈模式 (Chain of Responsibility Pattern) 就像一位隱形的助手🤖,幫助我們將這些請求一一分發給合適的處理者。
Thumbnail
👨‍💻簡介 在這篇文章裡,會簡單介紹幾個關鍵的基本概念和語法結構,加快上手這門程式語言。
Thumbnail
👨‍💻簡介 在這篇文章裡,會簡單介紹幾個關鍵的基本概念和語法結構,加快上手這門程式語言。
Thumbnail
在軟體開發領域中,良好的架構設計是實現可維護性、擴展性和重用性的關鍵。其中,"三層式架構"是一種常見且易於理解的架構模式。本文將介紹三層式架構的概念、優勢以及如何在你的軟體項目中應用它。
Thumbnail
在軟體開發領域中,良好的架構設計是實現可維護性、擴展性和重用性的關鍵。其中,"三層式架構"是一種常見且易於理解的架構模式。本文將介紹三層式架構的概念、優勢以及如何在你的軟體項目中應用它。
Thumbnail
知識圖解是一個非常實用的技能,但不是很好掌握。這篇文章分享由軟體架構師 Simon Brown 提出的 C4 模型,可以很好地讓圖解變的「見樹又見林」,最後我還會分享在軟體業之外的應用。如果你是需要在工作場合中思考與溝通複雜事物的人,就一起來看看這篇文章吧!
Thumbnail
知識圖解是一個非常實用的技能,但不是很好掌握。這篇文章分享由軟體架構師 Simon Brown 提出的 C4 模型,可以很好地讓圖解變的「見樹又見林」,最後我還會分享在軟體業之外的應用。如果你是需要在工作場合中思考與溝通複雜事物的人,就一起來看看這篇文章吧!
Thumbnail
第一層(Layer1) - 實體層(Physical Layer) 實體層主要是用來定義設備裝置之間位元資料傳輸,也就是透過物理線材連接至其他實體設備,傳遞0和1的數位訊號。 實體層包括了針腳、電壓、線纜規範、集線器、中繼器、網卡、主機介面卡等。 第二層(Layer2) - 資料連結層(
Thumbnail
第一層(Layer1) - 實體層(Physical Layer) 實體層主要是用來定義設備裝置之間位元資料傳輸,也就是透過物理線材連接至其他實體設備,傳遞0和1的數位訊號。 實體層包括了針腳、電壓、線纜規範、集線器、中繼器、網卡、主機介面卡等。 第二層(Layer2) - 資料連結層(
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News