写在前面:
本文例子来自天龙八部,当年鸠摩智挑战少林寺高僧,声称本身学会七十二绝技,实际上是用火焰刀,而后催动小无相功转换的虚假绝技,那么这里就体现了适配的用处,有点强行解释哈,不过原理差很少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(); 结果: 少林高僧:施主,你是用火焰刀,而后用小无相功强行使出的七十二绝技吧 鸠摩智:麻蛋,被看出来了