国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP設計模式之適配器模式代碼實例

2024-05-04 23:34:59
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP設計模式之適配器模式代碼實例,本文講解了目標、角色、應用場景、優勢等內容,并給出代碼實例,需要的朋友可以參考下

目標:

可將一個類的接口轉換成客戶希望的另外一個接口,使得原本不兼容的接口能夠一起工作。通俗的理解就是將不同接口適配成統一的API接口。

角色:

Target適配目標,該角色定義把其他類轉換為何種接口,也就是我們的期望接口。

Adaptee被適配者,就是需要被適配的接口。

Adapter適配器,其他的兩個角色都是已經存在的角色,而適配器角色是需要新建立的,它用來對Adaptee與Target接口進行適配。

應用場景:

如數據操作有mysql、mysqli、pdo、sqlite、postgresql等,假若生成環境需要更換數據庫時,可利用適配器模式統一接口。同理cache的場景也是,這會是更換緩存策略(memcache、redis、apc)更方便。

優勢:

被適配者通過適配器完成對適配目標的適配,以達到對客戶使用透明的目的。

示例代碼:

  1. //適配目標,規定的接口將被適配對象實現 
  2. interface IDatabase 
  3. public function connect($host$username$password$database); 
  4. public function query($sql); 
  5.  
  6. //適配器 
  7. class Mysql implements IDatabase 
  8. protected $connect
  9.  
  10. public function connect($host$username$password$database
  11. $connect = mysql_connect($host$username$password); 
  12. mysql_select_db($database$connect); 
  13. $this->connect = $connect
  14. //... 
  15.  
  16. public function query($sql
  17. //... 
  18.  
  19. //適配器 
  20. class Postgresql implements IDatabase 
  21. protected $connect
  22.  
  23. public function connect($host$username$password$database
  24. $this->connect = pg_connect("host=$host dbname=$database user=$username password=$password"); 
  25. //... 
  26.  
  27. public function query($sql
  28. //... 
  29.  
  30.  
  31. //客戶端使用 
  32. $client = new Postgresql(); 
  33. $client->query($sql); 

如上:

Target適配目標: IDataBase接口

Adaptee被適配者: mysql和postgresql的數據庫操作函數

Adapter適配器 :mysql類和postgresql類

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦淖尔市| 乌拉特中旗| 濮阳县| 察哈| 镇平县| 永济市| 明星| 会泽县| 永吉县| 永川市| 绥阳县| 泾阳县| 呼图壁县| 岳阳市| 西平县| 措勤县| 绵竹市| 厦门市| 太湖县| 元氏县| 镇原县| 汤原县| 基隆市| 泌阳县| 台江县| 子洲县| 通榆县| 湛江市| 西畴县| 岑巩县| 长顺县| 忻城县| 文登市| 松阳县| 抚松县| 新安县| 易门县| 商水县| 临漳县| 即墨市| 贵阳市|