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

以上是 php桥接模式是什么 的全部内容, 来源链接: utcz.com/z/545297.html

回到顶部