写在前面:
本文例子来自天龙八部,当年鸠摩智挑战少林寺高僧,声称自己学会七十二绝技,其实是用火焰刀,然后催动小无相功转换的虚假绝技,那么这里就体现了适配的用处,有点强行解释哈,不过原理差不多
target(目标): 七十二绝技
Adaptee(源): 火焰刀
Adapter(适配器): 小无相功
首先类适配器
代码实现:
目标七十二绝技
/**
* 少林七十二绝技
* Interface Qishier
*/
interface QishierTarget
{
public function jueji();
}
本身具有的武功火焰刀
/**
* 火焰刀的武功
* class HuoYanDaoAdaptee
*/
class HuoYanDaoAdaptee
{
public function huo(){
echo '使用火焰刀';
}
}
重点小无相功的适配器
继承了原来的火焰刀绝技,然后转换成了少林七十二绝技
/**
* 小无相功的适配器
* 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();
结果:
少林高僧:施主,你是用火焰刀,然后用小无相功强行使出的七十二绝技吧
鸠摩智:麻蛋,被看出来了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。