• 技术文章 >PHP >PHP教程

    php桥接模式是什么

    小妮浅浅小妮浅浅2021-07-02 14:24:04原创190

    说明

    1、将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果。

    2、结构分为Abstraction抽象类、RefindAbstraction被提炼的抽象类、Implementor实现类、ConcreteImplementor具体实现类 、Client客户端代码。

    实例

    /**
     * 颜色抽象类
     * 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桥接模式的介绍,希望对大家有所帮助。更多php学习指路:php教程

    专题推荐:php桥接模式
    品易云
    上一篇:php聚合式迭代器是什么 下一篇:php桥接模式的作用

    相关文章推荐

    • php自动加载机制是什么• php实现自动加载的两种方法• php static的三种使用方法• php $this是什么意思• php中$this的就近原则• php数组中array_column()函数的使用• php数组array_multisort()函数是什么• php empty()函数的用法• php按值传递和引用传递的比较• php命令模式如何理解• php常量中两种定义方式的比较• php中foreach的使用• php迭代器iterator的作用• php迭代器的工作原理分析• php聚合式迭代器是什么

    全部评论我要评论

  • 取消发布评论
  • 

    Python学习网