設計模式-適配器模式-例子

寫在前面:
本文例子來自天龍八部,當年鳩摩智挑戰少林寺高僧,聲稱本身學會七十二絕技,實際上是用火焰刀,而後催動小無相功轉換的虛假絕技,那麼這裏就體現了適配的用處,有點強行解釋哈,不過原理差很少php

target(目標): 七十二絕技
Adaptee(源): 火焰刀
Adapter(適配器): 小無相功code

首先類適配器
代碼實現:繼承

目標七十二絕技get

/**
 * 少林七十二絕技
 * Interface Qishier
 */
interface QishierTarget
{
    public function jueji();
}

自己具備的武功火焰刀io

/**
 * 火焰刀的武功
 * class HuoYanDaoAdaptee
 */
class HuoYanDaoAdaptee
{
    public function huo(){
        echo '使用火焰刀';
    }
}

重點小無相功的適配器function

繼承了原來的火焰刀絕技,而後轉換成了少林七十二絕技class

/**
 * 小無相功的適配器
 * Class XwxgAdapter
 */
include_once "HuoYanDaoAdaptee.php";
include_once "QishierTarget.php";
class XwxgAdapter extends HuoYanDaoAdaptee implements QishierTarget
{
    public function jueji()
    {
        parent::huo();
        echo '轉換成七十二絕技';
    }
}

挑戰少林寺原理

/**
 * 鳩摩智使用
 */

include_once "XwxgAdapter.php";
$adapter = new XwxgAdapter();

$adapter->jueji();

結果:
少林高僧:施主,你是用火焰刀,而後用小無相功強行使出的七十二絕技吧
鳩摩智:麻蛋,被看出來了
相關文章
相關標籤/搜索