微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();
 
 
// 运行结果
白色圆形
黑色正方形
红色长方形

以上就是“PHP桥接模式实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程之家行业资讯频道。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐