php適配器模式簡介
Adapter(別名Wrapper)模式:將一個類別的接口,轉換成客戶期望的另一個類別的接口。適配器讓原本介面不相容的類別可以合作無間
重點:
1. 適配器模式主要應用於“希望復用一些現存的類,但是接口又與復用環境要求不一致的情況”,在遺留代碼復用、類庫遷移等方面非常有用。
2. 適配器模式有物件適配器和類別適配器兩種形式的實作結構,但是類別適配器採用「多繼承」的實作方式,帶來了不良的高耦合,所以一般不推薦使用。物件適配器採用「物件組合」的方式,更符合鬆散耦合精神。
實作:
類別的適配器模式結構圖(繼承)
物件的適配器模式結構圖(組合)
(物件適配器的程式碼實作)
Target:定義Client使用的與特定領域相關的介面
public interface Target { void request();}
Adaptee:現在需要適配的已經存在的介面
public class Adaptee{ public void specificRequest(){}}
Adapter:對Adaptee 的介面與Target介面進行適配
public class Adapter implements Target{ public Adapter(Adaptee adaptee) { super(); this.adaptee = adaptee; } public void request() { adaptee.specificRequest(); } private Adaptee adaptee;}
適用性:
1. 系統需要使用現有的類,而此類的接口不符合系統的需要。
2. 想要建立一個可以重複使用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作。這些源類別不一定有很複雜的介面。
3. (對物件適配器而言)在設計裡,需要改變多個已有子類別的接口,如果使用類別的適配器模式,就要針對每一個子類別做一個適配器,而這不太實際。
效果及優缺點:
對於類別適配器:
1. 用一個特定的Adapter類別對Adaptee和Taget進行配對。結果是當我們想要匹配一個類別以及所有它的子類別時,類別Adapter將無法勝任工作。
2. 使得Adapter可以override(重定義) Adaptee的部分行為,因為Adapter是Adaptee的一個子類別。
對於物件適配器:
1. 允許一個Adapter與多個Adaptee,即Adaptee本身以及它的所有子類別(如果有子類別的話)同時工作。 Adapter也可以一次為所有的Adaptee新增功能。
2. 使得override(重定義)Adaptee的行為比較困難。如果一定要override Adaptee的方法,就只好先做一個Adaptee的子類別以override Adaptee的方法,然後再把這個子類別當作真正的Adaptee源進行適配。
以上是php適配器模式簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

CakePHP 是一個開源MVC 框架。它使應用程式的開發、部署和維護變得更加容易。 CakePHP 有許多函式庫可以減少大多數常見任務的過載。

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲
