欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

淺談PHP設(shè)計(jì)模式的適配器模式

簡(jiǎn)介:

適配器模式屬于結(jié)構(gòu)型設(shè)計(jì)模式。
將一個(gè)類(lèi)的接口轉(zhuǎn)換成可應(yīng)用的兼容接口。適配器使原本由于接口不兼容而不能一起工作的那些類(lèi)可以一起工作。
適配器模式有兩種實(shí)現(xiàn)方案,一種是繼承的方式,一種是組合的方式。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、霍城網(wǎng)站維護(hù)、網(wǎng)站推廣。

適用場(chǎng)景:

  1. 兼容不方便更改的“祖?zhèn)鳌贝a。
    歸納具有相似點(diǎn)的模塊,比如Laravel FileSystemAdapter。

優(yōu)點(diǎn):

  1. 擴(kuò)展了原有類(lèi),增強(qiáng)了擴(kuò)展性。
  2. 無(wú)需修改原有代碼,符合開(kāi)閉原則。

缺點(diǎn):

由于PHP不支持多繼承,一次最多只能適配一個(gè)適配者類(lèi)。

代碼:

//用戶(hù)類(lèi),獲取用戶(hù)信息,這是個(gè)老項(xiàng)目
class User {
    public function getUserInfo() {
        return serialize([
            'id'    => 1,
            'name'  => 'zs',
            'phone' => '',
            'email' => '@gmail.com'
        ]);
    }
}

//老調(diào)用端口,由于這種序列化語(yǔ)法是PHP特有的,但是一旦擴(kuò)展調(diào)用端的種類(lèi),比如添加java,安卓調(diào)用,其它調(diào)用端的接口將無(wú)法使用,為此需要做出優(yōu)化。
$user = new User();
echo $user->getUserInfo() . PHP_EOL;

//優(yōu)化 使用繼承的方式
class UserAdapter1 extends User {
    public function getUserInfo() {
        $old_user_info = parent::getUserInfo();
        return json_encode(unserialize($old_user_info));
    }
}


//調(diào)用端
$user_new = new UserAdapter1();
echo $user_new->getUserInfo() . PHP_EOL;


//優(yōu)化 使用組合的方式
class UserAdapter2 {
    public function getUserInfo() {
        $old_user_info = (new User)->getUserInfo();
        return json_encode(unserialize($old_user_info));
    }
}


//調(diào)用端
$user_new = new UserAdapter2();
echo $user_new->getUserInfo() . PHP_EOL;
```php

網(wǎng)頁(yè)名稱(chēng):淺談PHP設(shè)計(jì)模式的適配器模式
文章分享:http://chinadenli.net/article6/dsoihog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站改版營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)