博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
S5:桥接模式 Bridge
阅读量:6574 次
发布时间:2019-06-24

本文共 769 字,大约阅读时间需要 2 分钟。

将抽象的部分与实现的部分分离,使它们都可以独立变化.

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

合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承.

聚合是一种弱拥有关系,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();

  

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

转载于:https://www.cnblogs.com/itfenqing/p/7787967.html

你可能感兴趣的文章
PHPstorm如何导入字体主题
查看>>
静态链表
查看>>
在VS中手工创建一个最简单的WPF程序
查看>>
python for 格式化字符串 list.count
查看>>
"网络适配器本地连接没有有效ip地址配置"错误的解决办法
查看>>
360随身WIFI作USB无线网卡的做法
查看>>
网站设计中很重要的概念div+浮动
查看>>
js平滑滚动到顶部,底部,指定地方 animate()
查看>>
OC-NSFileManager
查看>>
printf和sprintf
查看>>
数组分割
查看>>
O(1) O(n)
查看>>
iphone socket讲解
查看>>
CAS机制详解
查看>>
odoo开发笔记 -- 翻译机制及导入.po文件
查看>>
运维邮件
查看>>
Sql异常①
查看>>
横向无缝滚动
查看>>
PreparedStatement设置时间
查看>>
CF533C:Board Game(博弈)
查看>>