加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何简单说明PHP桥接模式,实例中怎么实现

发布时间:2023-05-15 15:16:40 所属栏目:PHP教程 来源:
导读:我们来学习关于“如何简单介绍PHP桥接模式,实例中怎么实现”的内容,下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧
我们来学习关于“如何简单介绍PHP桥接模式,实例中怎么实现”的内容,下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧。

说明
 
1、将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果。
 
2、结构分为抽象类、被提炼的抽象类、实现类、具体实现类和客户端代码。
 
实例
 
/**
 
 * 颜色抽象类
 
 * Class Colour
 
 */
 
abstract class Colour
 
{
 
    /**
 
     * @return mixed
 
     */
 
    abstract public function run();
 
}

 
/**
 
 * 黑色
 
 * Class Black
 
 */
 
class Black extends Colour
 
{
 
    public function run()
 
    {
 
        // TODO: Implement run() method.
 
        return '黑色';
 
    }
 
}

/**
 
 * 白色
 
 * Class White
 
 */
 
class White extends Colour
 
{
 
    public function run()
 
    {
 
        // TODO: Implement run() method.
 
        return '白色';
 
    }
 
}
 
/**
 
 * 红色
 
 * Class Red
 
 */
 
class Red extends Colour
 
{
 
    public function run()
 
    {
 
        // TODO: Implement run() method.
 
        return '红色';
 
    }
 
}
 
/**
 
 * 形状抽象类
 
 * Class Shape
 
 */
 
abstract class Shape
 
{
 
    /**
 
     * 颜色
 
     * @var Colour
 
     */
 
    protected $colour;

 
    /**
 
     * Shape constructor.
 
     * @param Colour $colour
 
     */
 
    public function __construct(Colour $colour)
 
    {
 
        $this->colour = $colour;
 
    }

    /**
 
     * @return mixed
 
     */
 
    abstract public function operation();
 
}
 
/**
 
 * 圆形
 
 * Class Round
 
 */
 
class Round extends Shape
 
{
 
    /**
 
     * @return mixed|void
 
     */
 
    public function operation()
 
    {
 
        // TODO: Implement operation() method.
 
        echo $this->colour->run() . '圆形<br>';
 
    }
 
}

/**
 
 * 长方形
 
 * Class Rectangle
 
 */
 
class Rectangle extends Shape
 
{
 
    /**
 
     * @return mixed|void
 
     */
 
    public function operation()
 
    {
 
        // TODO: Implement operation() method.
 
        echo $this->colour->run() . '长方形<br>';
 
    }
 
}

/**
 
 * 正方形
 
 * Class Square
 
 */
 
class Square extends Shape
 
{
 
    /**
 
     * @return mixed|void
 
     */
 
    public function operation()
 
    {
 
        // TODO: Implement operation() method.
 
        echo $this->colour->run() . '正方形<br>';
 
    }
 
}

// 客户端代码
 
// 白色圆形
 
$whiteRound = new Round(new White());
 
$whiteRound->operation();

// 黑色正方形
 
$blackSquare = new Square(new Black());
 
$blackSquare->operation();

// 红色长方形
 
$redRectangle = new Rectangle(new Red());
 
$redRectangle->operation();
 
// 运行结果
 
白色圆形
 
黑色正方形
 
红色长方形
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!