亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中適配器模式的使用

發布時間:2020-07-01 10:30:56 來源:億速云 閱讀:159 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關PHP中適配器模式的使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

  1. 生活場景問題引入:

假如需要去國外旅游,游玩,現在電子產品很豐富,但是每個電子產品都是需要電源來做驅動,手機,電腦,相機。。。但是又有一個很顯示的問題,電子產品是
很消耗電量的,電量沒有了,就需要充電,在我們國家,我們買的電子產品出場帶的電源充電器,一般都是220V的電壓,但是世界很大,每個國家的要求(規定)
又是不同的,比如美國就是120V

  1. 原理:

將一個類的接口轉換為另外一種接口,讓原本接口不兼容的類可以兼容。

用戶調用適配器轉化出來的目標接口方法,適配器再去調用被適配者的相關接口方法

  1. 好處:

用戶是看不到被適配者,屬于解耦的操作

  1. 適配器模式屬于結構型的設計模式

  2. 適配器模式的三種實現方式:

一、 類適配器

PHP中適配器模式的使用

根據上面的UML圖,我們可以看出,需要一個美國電壓的接口UsaInterface,一個適配器類Adapter,一個中國電壓的接口Chine,一個使用者Computer
在這里,中國電壓就是被適配者,美國電壓是最后的輸出(目標),就是是配置者

interface UsaInterface{
    public function outPut5V();}class China{
    private $voltage = 220;

    public function outPut220V()
    {
        return $this->voltage;
    }}class Adapter extends China implements UsaInterface{

    public function outPut5V()
    {
        // TODO: Implement outPut5V() method.
        $chinaVoltage = $this->outPut220V();

        return $chinaVoltage / 2 + 10 . "V";
    }}class Computer{
    public function index(UsaInterface $usa)
    {
        if ($usa->outPut5V() === "120V") {
            printf("可以在美國使用中國的電源插頭給電腦充電了");
        } else {
            printf("不可以在美國使用中國的電源插頭給電腦充電了");
        }
    }}class Client{
    public function __construct()
    {
        $adapter = new Adapter();
        $computer = new Computer();

        $computer->index($adapter);
    }}

二、對象適配器模式

對象適配器其實就是在類適配器的模式上做了一個調整,讓適配器類Adapter不去繼承被適配者的類,而是讓它們組合在一起,這樣就可以增加了使用的靈活
度,也不會暴露被適配者的很多方法(使用關聯關系來代替繼承關系【合成復用原則】)。同時,沒有繼承就沒有辦法去覆蓋父類的方法重寫了,也算是有好有壞吧。如下:

class Adapter implements UsaInterface{
    protected $china;

    public function __construct(China $china)
    {
        $this->china = $china;
    }


    public function outPut5V()
    {
        // TODO: Implement outPut5V() method.
        $chinaVoltage = $this->china->outPut220V();

        return $chinaVoltage / 2 + 10 . "V";
    }}

三、接口適配器(缺省適配器模式)

當不需要全部實現接口提供的方法時,可以先設計一個抽象類實現接口,并為接口提供默認的的空方法實現,那么改抽象類的子方法就可以有選擇的覆蓋父類的某
些方法來實現需求,(適用于一個接口不想使用所有的方法的情況)

上述就是小編為大家分享的PHP中適配器模式的使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柏乡县| 崇明县| 华亭县| 台南县| 利川市| 偏关县| 凤阳县| 南京市| 木兰县| 茂名市| 和平区| 沅江市| 芷江| 涡阳县| 张北县| 屏南县| 华阴市| 北票市| 郯城县| 金溪县| 弋阳县| 鄂州市| 广元市| 渭南市| 武乡县| 黄陵县| 泽库县| 桃源县| 长乐市| 陵川县| 观塘区| 双牌县| 德惠市| 弥渡县| 安顺市| 勃利县| 南漳县| 涞源县| 嘉祥县| 彰化市| 长海县|