PHP設計模式之介面卡模式

2021-08-17 06:27:42 字數 1722 閱讀 6466

<?php

header('content-type:text/html;charset=utf-8');

/** * 介面卡模式演示**

* target適配目標: idatabase介面

* adaptee被適配者: mysql和mysql_i、postgresql的資料庫操作函式

* adapter介面卡 :mysql類和mysql_i、postgresql類

*//**

* inte***ce idatabase 適配目標,規定的介面將被適配物件實現

* 約定好統一的api行為

*/inte***ce

idatabase

/** * class mysql 介面卡

*/class

mysql

implements

idatabase

/*** 實現查詢方法

** @param $sql 需要被查詢的sql語句

* @return mi

*/public

function

query

($sql)

// 實現關閉方法

public

function

close()}

/** * class mysql 介面卡

*/class

mysql_i

implements

idatabase

/*** 實現查詢方法

** @param $sql 需要被查詢的sql語句

*/public

function

query

($sql)

// 實現關閉

public

function

close()}

/** * class postgresql 介面卡

*/class

postgresql

implements

idatabase

/*** 實現查詢方法

** @param $sql 需要被查詢的sql語句

*/public

function

query

($sql)

// 實現關閉方法

public

function

close()}

/** * 客戶端使用演示

* 這裡以mysql為例

* 只要模式設計好,不論有多少種資料庫,實現和呼叫方式都是一樣的

* 因為都是實現的同乙個介面,所以都是可以隨意切換的

*/$host = 'localhost';

$username = 'root';

$password = 'root';

$database = 'mysql';

//$client = new postgresql();

//$client = new mysql();

$client = new mysql_i();

$client->connect($host, $username, $password, $database);

$result = $client->query("select * from db");

while ($rows = mysqli_fetch_array($result))

$client->close();

php設計模式之介面卡模式

借鑑 適用性 原理 將要用到的角色分為以下幾種 target最早實現的介面,adaptee改善之後的介面,adapter對target和adapter進行適配,client呼叫介面 類介面卡模式 author mtg 目標角色 version 1.0 class target 目標點 public ...

PHP設計模式之介面卡模式

php設計模式之介面卡模式 1 介面卡模式的概念 介面卡設計模式只是將某個物件的介面適配為另乙個物件所期待的介面。2 uml靜態模型 3 單例模式舉例 今天從網路上爬了一些資料,爬下來的內容如下 所示,該內容在另一頁面直接顯示,這裡的爬蟲 就不寫了,只寫乙個模擬的效果。address 山東威海農副產...

PHP設計模式之 介面卡模式

介面卡要完成的功能很明確,引用現有介面的方法實現新的介面的方法。你的介面不改的話,我就利用現有介面和你對接一下吧。開 閉 原則,乙個軟體實體應當對擴充套件開放,對修改關閉 class toy describe 原有的介面 author nick abstract class toy class do...