该模式属于结构型模式
什么是适配器模式?
将一个类的接口转换成客户希望的另外一个接口,使得原本不兼容的接口能够一起工作。通俗的理解就是将不同接口适配成统一的接口。
生活中就有很多适配器,比如 电源适配器220V。 这里面呢 就是将220V的电压通过一个中间的一个变压器,变成我们一个适用的5V的电压。
话不多说上代码:
<?php
interface PerfectMan
{
public function cook();
public function writePhp();
}
//Wife类是已知的类,假设我们不方便修改该类中的代码
class Wife
{
public function cook()
{
echo '我会做满汉全席<br/>';
}
}
class Man implements PerfectMan
{
protected $wife;
public function __construct($wife)
{
$this->wife = $wife;
}
public function writePhp()
{
echo '我会写php代码<br/>';
}
/*
*还要实现接口类中的cook()方法,但是Wife类中已经有cook方法了,我们没有必要自己在实现一遍cook方法,
*所以我们使用已知的Wife类来间接的实现接口中的cook()方法
*
*这就是适配器模式。我们通过适配器模式就达到了统一接口的目的
*/
public function cook()
{
$this->wife->cook();
}
}
//测试
$man = new Man(new Wife);
$man->cook(); //output:我会做满汉全席推荐阅读:再谈 php设计模式之适配器(adapter)模式
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。


精彩评论