PHP設計模式之介面卡模式

2021-07-07 09:09:17 字數 1840 閱讀 6559

php設計模式之介面卡模式

1、介面卡模式的概念

介面卡設計模式只是將某個物件的介面適配為另乙個物件所期待的介面。

2、uml靜態模型

3、單例模式舉例

今天從網路上爬了一些資料,爬下來的內容如下**所示,該內容在另一頁面直接顯示,這裡的爬蟲**就不寫了,只寫乙個模擬的效果。

address

山東威海農副產品批發市場

甘肅靖遠瓜果蔬菜批發市場

河南南陽果品批發交易中心

安徽亳州蔬菜批發市場

江蘇無錫朝陽農貿市場

1、得到資料**如下所示:檔名datas.php

<?php

class datas

public function get() }

2、顯示資料**如下所示:檔名shows.php

<?php

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

require_once 'datas.php';

$datas = new datas();

$data = $datas->get();

foreach ($data as $value)

現在,我要把資料存到資料庫,由於獲取到的資料的前兩個字是地區名,所以在資料庫訪問時要求將該條記錄的地區名也存進去,也就是擷取一下前兩個漢字即可。現在應該怎麼辦?重新在這個類中寫乙個方法?盡量不要這樣,因為這個類在別的頁面中應用,所以就盡量不要更改這個類了,以免引出其他錯誤,現在就是寫乙個介面卡,返回的資料就是地區名+市場名的資料格式。

3、介面卡**如下:datasadapter.php

<?php

require_once 'datas.php';

class datasapapter extends datas

function get()

return $data; }

}4、使用介面卡**如下:db.php

<?php

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

require_once 'datasadapter.php';

$obj = new datasapapter();

$data = $obj->get();

foreach ($data as $value)

4、結論

在開發過程中,如果需求發生了改變,不要急於去重新寫該部分的**,因為該需求隻變了一部分,其他功能可能還用到原先的**了,若去重寫該**,考慮不周的話可能會在其他功能出錯,所以最好的實踐就是去建立乙個介面卡,將原先的介面適配成現在所需要的介面,這樣一來,不僅可以重用之前寫的**,並且能減少很多麻煩。

php設計模式之介面卡模式

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

PHP設計模式之 介面卡模式

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

PHP設計模式之介面卡模式

header content type text html charset utf 8 介面卡模式演示 target適配目標 idatabase介面 adaptee被適配者 mysql和mysql i postgresql的資料庫操作函式 adapter介面卡 mysql類和mysql i post...