首页 > 作文

【php设计模式】桥接模式

更新时间:2023-04-06 21:32:53 阅读: 评论:0

定义:
  将抽象与实现分离,使它中秋国庆双节宣传语们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

角色:
  抽象化(abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。
  扩展抽象化(refined abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
  实现化(implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用。
  具体实现化(concrete implementor)角色:给出实现化角色接口的具体实现。

举例:

  车分为很多种(小轿车,公交车),并且每种车都会跑在不同的道路上(街道,高速路),如果使用继承的方式我们可以实现这些场景
  但是那样做的话会使得代码变得可扩展行很差,但是使用桥接模式就不一样啦

abstract class road生活哲理名言{    public $car;    public function __construct(car $car){        $this->car = $car;    }    public abstract function run();}class speedway extends road{    public function run(){        echo $this->car->name." run on speedway\n";    }}class street extends road{    public function run(){        echo $this->car->name." run on street\n";    }}abstract class car{    public $name;}class smallcar extends car{    public function __construct(){        $this->name = "smallcar";    }}class bus extends car{    public function __construct(){        $this->name = "bus";    }}$small_car = new smallcar();$speedway = new speedway($smal作文二十年后的我l_car);$speedway->run();$bus = new bu热爱生命的事例s();$street = new street($bus);$street->run()中秋节快乐祝福语大全;

使用场景:

  当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
  当一个系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。
  当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。




本文发布于:2023-04-06 21:32:51,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/9a5cad530aeec3c99e329f5381ab4cf0.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:【php设计模式】桥接模式.doc

本文 PDF 下载地址:【php设计模式】桥接模式.pdf

下一篇:返回列表
标签:角色   维度   组合   这两个
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图