8、设计模式之桥接模式
创始人
2024-05-29 19:35:00
0

本文简单讲述下桥接模式。

8、桥接模式

8.1、场景

商场中的商品以电脑为例,如何处理商品的分类销售呢?可以使用多重继承结构的方式。如图:
在这里插入图片描述

8.2、问题

1、扩展性问题(类个数膨胀的问题)

  • 如果要增加一个新的电脑类型,则要增加各个品牌下的类
  • 如果要增加一个品牌,要增加各个电脑类型的类
    2、 违反单一职责问题
    一个类:戴尔笔记本,有两个引起这两个类变化的原因。

8.3、 场景分析

在这里插入图片描述

8.4、桥接模式的核心要点

  • 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。
    在这里插入图片描述

8.5、代码实现

/*** 品牌* @author tqq* @date 2021-04-05-20:44*/
public interface Brand {void sale();
}
class Lenovo implements Brand{@Overridepublic void sale() {System.out.println("销售联想电脑");}
}
class Dell implements Brand{@Overridepublic void sale() {System.out.println("销售戴尔电脑");}
}
class Huawei implements Brand{@Overridepublic void sale() {System.out.println("销售Huawei电脑");}
}
/*** 电脑类型维度* @author tqq* @date 2021-04-05-20:47*/
public class Computer2 {protected Brand brand;public Computer2(Brand brand) {this.brand = brand;}public void sale(){brand.sale();}
}
class Desktop2 extends Computer2{public Desktop2(Brand brand) {super(brand);}@Overridepublic void sale() {
//        super.sale();brand.sale();System.out.println("销售台式机");}
}
class Laptop2 extends Computer2{public Laptop2(Brand brand) {super(brand);}@Overridepublic void sale() {
//        super.sale();brand.sale();System.out.println("销售笔记本电脑");}
}
class Pad2 extends Computer2{public Pad2(Brand brand) {super(brand);}@Overridepublic void sale() {brand.sale();System.out.println("销售平板电脑");}
}

client调用

public class Client {public static void main(String[] args) {
//        Computer2 laptop2 = new Laptop2(new Lenovo());
//        laptop2.sale();
//
//        Computer2 computer2 = new Desktop2(new Lenovo());
//        computer2.sale();
//
//        Computer2 huawei = new Desktop2(new Huawei());
//        huawei.sale();Pad2 pad2 = new Pad2(new Huawei());pad2.sale();}
}

8.6、总结

  • 桥接模式和以取代多重继承结构。多层继承违反了单一职责原则。桥接模式可以极大的减少子类的个数,降低管理和维护的成本。
  • 桥接模式极大地提高了系统的扩展性,在两个变化的维度中任意扩展一个维度,都不需要修改原有的系统,符合开闭原则。
    在这里插入图片描述

8.7、开发中的场景

在这里插入图片描述

注:
本文参考北京尚学堂设计模式课程

相关内容

热门资讯

安卓系统安装apple pay... 你有没有想过,即使你的手机是安卓系统,也能享受到Apple Pay的便捷支付体验呢?没错,就是那个曾...
安卓系统qq炫舞,安卓QQ炫舞... 你有没有发现,最近手机上的一款游戏突然火了起来?没错,就是安卓系统上的QQ炫舞!这款游戏不仅吸引了大...
安卓9.0系统改比例,引领智能... 你知道吗?最近安卓系统又来了一次大更新,安卓9.0系统正式上线啦!这次更新可是带来了不少新功能,其中...
安卓系统怎样拍视频,安卓系统视... 亲爱的手机摄影爱好者们,你是否曾想过,你的安卓手机竟然可以拍出专业级别的视频?没错,就是那个你每天不...
飞利浦电视安卓系统卡,飞利浦电... 你有没有遇到过这种情况?家里的飞利浦电视用着用着,突然间安卓系统就卡住了,屏幕上那些花花绿绿的图标都...
收银系统源码安卓手机,功能模块... 你有没有想过,那些在超市、便利店、餐厅里忙碌的收银员,他们手中的收银系统,其实背后有着一套复杂的源码...
安卓系统那种手机最好,盘点性能... 你有没有想过,安卓系统那种手机最好呢?在这个科技飞速发展的时代,手机已经成为了我们生活中不可或缺的一...
怎么视频截图安卓系统,安卓系统... 亲爱的手机控们,你是不是也和我一样,有时候在手机上看视频时,突然发现了一个特别有趣的瞬间,想要截图保...
vivo系统基于安卓吗,基于安... 你有没有想过,你的vivo手机里那个流畅又好用的系统,其实是在安卓的大树下茁壮成长的呢?没错,viv...
魅族降系统安卓13系统,探索无... 你知道吗?最近手机圈里可是炸开了锅,魅族这个品牌竟然悄悄地给自家手机升级了安卓13系统!这可真是让人...
安卓手机查看系统信息,系统信息... 你有没有想过,你的安卓手机里藏着多少秘密?别小看那小小的屏幕,它可是个信息宝库呢!今天,就让我带你一...
安卓7.0系统相机崩溃,原因分... 最近是不是你也遇到了安卓7.0系统相机崩溃的烦恼?别急,让我来给你详细说说这个让人头疼的问题,让你一...
安卓u子系统系统u盘,Andr... 你有没有想过,你的安卓手机里有一个神秘的“U子系统”,它就像一个隐藏的宝藏,等待着你去探索。今天,就...
联想怎么下载安卓系统,安卓系统... 你有没有想过,你的联想手机或者平板,有一天也能装上安卓系统的全新面貌呢?没错,今天就要来手把手教你如...
查老式安卓系统版本,展望未来 你有没有发现,手机里的安卓系统版本有时候就像是个神秘的宝藏,藏着许多不为人知的秘密呢?今天,就让我带...
核酸录入安卓机系统,基于安卓系... 你有没有想过,那些看似简单的核酸检测,背后竟然有这么复杂的“大脑”——安卓机系统?没错,就是那个我们...
高邮苹果刷安卓系统,安卓系统助... 你有没有想过,那些我们平时吃的苹果,竟然也能刷上安卓系统?听起来是不是有点不可思议?没错,今天就要带...
安卓系统的ar眼镜,安卓系统赋... 你有没有想过,未来科技的世界里,眼镜不仅仅是用来看清世界的工具,还能成为你的得力助手?没错,说的就是...
怎样删安卓系统垃圾,揭秘安卓系... 手机里的安卓系统是不是越来越卡了?是不是觉得那些垃圾文件占据了太多空间,让你头疼不已?别急,今天就来...
畅享10安卓系统,畅享智能生活... 你有没有听说啊?最近安卓系统又来了一次大升级,这次可是直接跳到了10版本,听起来是不是很酷炫?没错,...