• 技术文章 >PHP >PHP教程

    php桥接模式是什么

    小妮浅浅小妮浅浅2021-07-28 16:10:46原创4532

    说明

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

    2、结构分为抽象类、被提炼的抽象类、实现类、具体实现类和客户端代码。

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    128

    129

    130

    131

    132

    133

    134

    135

    136

    137

    138

    139

    140

    141

    142

    143

    144

    145

    146

    147

    148

    149

    150

    151

    152

    153

    154

    /**

     * 颜色抽象类

     * 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 static的三种使用方法• php $this是什么意思• php中$this的就近原则• php数组中array_column()函数的使用• php数组array_multisort()函数是什么• php empty()函数的用法• php按值传递和引用传递的比较• php命令模式如何理解• php常量中两种定义方式的比较• php中foreach的使用• php迭代器iterator的作用• php迭代器的工作原理分析• php聚合式迭代器是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网