2023-08-31|閱讀時間 ‧ 約 4 分鐘

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

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

分享至
成為作者繼續創作的動力吧!
歡迎來到 Golang Lab!我們專注於提供深入的 Golang 學習體驗。透過系列文、實例項目和進階指南,探索從基礎到進階的開發技巧,包括正則表達式、併發程式設計、性能優化等。無論您是新手還是有經驗的開發者,我們都致力於協助您迅速掌握 Golang,並在實際應用中取得成功。一同學習、分享和成長!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

發表回應

成為會員 後即可發表留言