zoukankan      html  css  js  c++  java
  • S5:桥接模式 Bridge

    将抽象的部分与实现的部分分离,使它们都可以独立变化.
    抽象与实现的分离,指的是抽象类和派生类用来实现自己的对象.实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来,让他们独立变化,减少他们之间的耦合.

    合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承.
    聚合是一种弱拥有关系,A对象可以包含B对象,但B对象不是A对象的一部分.
    合成是一种强拥有关系,体现了严格的部分整体关系,部分和整体生命周期一致.

    UML:

    示例代码:

    abstract class Phone
    {
        protected $audio;
    
        public function __construct(Audio $audio)
        {
            $this->audio = $audio;
        }
    
        abstract public function output();
    }
    
    class Iphone extends Phone
    {
        public function output()
        {
            $this->audio->play();
        }
    
    }
    
    abstract class Audio
    {
        abstract public function play();
    }
    
    class HiFi extends Audio
    {
        public function play()
        {
            echo "HIFI play";
        }
    
    }
    
    $phone = new Iphone(new HiFi());
    $phone->output();
    

      

    将手机和手机的播放音乐,都分离开来.两者均可独立变化.

  • 相关阅读:
    python基础day3-今日内容,2019-6-25
    python基础day3-视频下载,2019-6-25
    append,extend,insert的区别
    DOM基础之获取元素
    p1553数组反转
    python函数
    python文件处理
    day02 python基础之列表,元祖,字典
    day01 python基础
    Python绘图Turtle库详解
  • 原文地址:https://www.cnblogs.com/itfenqing/p/7787967.html
Copyright © 2011-2022 走看看