簡單設計模式:適配器模式
2018年3月10日2 分鐘閱讀

簡單設計模式:適配器模式

這篇文章是通過 AI 翻譯生成,可能有不準確之處。

如果你不知道這個系列是關於什麼的,這裡是系列中第一篇文章的連結。那篇文章的第一部分是這個系列的動機和介紹。我希望它能幫助你更好地理解這個系列的目標。


適配器模式

適配器模式是 GoF 設計模式 中一個容易理解的模式。如其名稱所示,適配器模式將不相容的介面轉換為相容的介面。

適配器例子 圖片來自 Best Buy

例如,你有一個遺留模組。它提供了你需要的功能,但其介面不適合你目前正在開發的新應用程式。你可以做的一件事是為遺留模組提供一個包裝器,將其介面轉換為可以在新應用程式中使用的介面。

非常簡單但強大的概念,對吧?

例子

我們有一個重疊檢查函數來幫助我們計算兩個矩形是否彼此重疊。讓我們看看這個函數是什麼樣子的:

const checkOverlap = (topLeft1, w1, h1, topLeft2, w2, h2) => {
  // ...跳過步驟
  return isOverlap // boolean
}

它接受 topLeft、寬度 w 和高度 h 來表示一個矩形。我們目前對此都很滿意。

在未來的某個時候,由於某些原因,應用程式將矩形的表示從我們上面提到的改變為 topLeftbottomRight,但我們仍然需要出色的 checkOverlap 函數。做到這一點的一種方法是提供一個包裝器來將新的輸入表示轉換為原始的,就像這樣:

const checkOverlapV2 = (topLeft1, bottomRight1, topLeft2, bottomRight2) => {
  //... 從參數計算 w1, h1, w2, h2
  return checkOverlap(topLeft1, w1, h1, topLeft2, w2, h2)
}

現在,我們可以使用遺留函數而無需重寫它。歡呼!

結論

適配器模式提供了一種優雅的方式來重用與現有環境不相容的程式碼。當你有很多複雜的遺留模組需要重用時,它非常有幫助。我希望這篇文章能幫助你對適配器模式有基本的理解。如果你想了解更多,可以查看參考資料中的連結,謝謝!

參考資料