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、开发中的场景

在这里插入图片描述

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

相关内容

热门资讯

汽车加装安卓系统卡住,探究原因... 你有没有遇到过这样的尴尬情况:汽车加装了安卓系统,结果屏幕突然卡住了,就像被施了魔法一样,怎么也动弹...
电量壁纸安卓系统下载,打造个性... 手机电量告急,是不是又得赶紧找充电宝了?别急,今天就来给你安利一款超实用的电量壁纸,让你的安卓手机瞬...
iPhonex里面是安卓系统,... 你有没有想过,那个我们每天都离不开的iPhone,里面竟然可能是安卓系统?是的,你没听错,就是那个以...
ios系统比安卓系统好在哪里,... 你有没有想过,为什么有些人对iOS系统情有独钟,而有些人却对安卓系统爱不释手呢?今天,就让我带你从多...
安卓系统跟踪设置大小,跟踪设置... 你知道吗?现在智能手机几乎成了我们生活的必需品,而安卓系统作为全球最受欢迎的操作系统之一,它的跟踪设...
在线迎新系统下载安卓,轻松开启... 你有没有想过,开学季的到来,就像一场盛大的狂欢,而在这个狂欢中,有一个小助手,它默默地守护着你的入学...
安卓系统怎么申请微信号,一键申... 你有没有想过,在安卓手机上申请一个微信账号,竟然也能变得如此简单?没错,就是那个我们每天离不开的社交...
安卓手机系统里怎么清理,轻松优... 手机里的东西越来越多,是不是感觉安卓手机系统越来越慢了呢?别急,今天就来教你怎么清理安卓手机系统,让...
安卓系统改定位地址软件,轻松掌... 你是不是也和我一样,有时候想换个角度看世界,但又不想真的搬家?别急,今天就来给你揭秘一个神奇的小工具...
安卓10系统里的Google,... 你有没有发现,自从你的安卓手机升级到了10系统,Google的功能好像变得更加贴心了呢?今天,就让我...
安卓app刷量留存系统,高效策... 你有没有想过,那些在手机上下载的安卓应用,它们是如何吸引你的注意,又是如何让你一刷再刷的呢?今天,就...
安卓app答题系统功能数据,全... 你有没有想过,手机里那些答题APP,它们是怎么做到让你在轻松愉快的氛围中学习新知识的呢?今天,就让我...
安卓系统iso镜像下载地址,轻... 你有没有想过,想要给你的安卓设备来个焕然一新的变身?那就得来点技术活儿——下载一个安卓系统的ISO镜...
微软安卓系统删除不了,删除操作... 你有没有遇到过这种情况?手机里突然多了一个微软安卓系统,怎么也删不掉,真是让人头疼啊!这不,最近就有...
安卓系统能查隐私吗,隐私查询与... 你有没有想过,你的安卓手机里藏着多少秘密?是不是好奇过,有没有什么方法可以窥探这些隐私呢?今天,就让...
安卓系统的掌上炫舞,安卓平台上... 你有没有发现,最近你的手机里多了一个新伙伴?没错,就是安卓系统的掌上炫舞!这款游戏可是风靡一时,让无...
安卓系统怎么删除小红标,安卓系... 手机里的小红标是不是让你觉得有点碍眼呢?别急,今天就来教你怎么轻松地把它从安卓系统中删除掉,让你的手...
安卓系统播放路由器,打造无缝网... 你有没有想过,家里的安卓系统设备想要畅快地享受网络,其实只需要一个小小的助手——那就是路由器!今天,...
基于安卓系统的人脸识别,人脸识... 你有没有想过,在手机解锁的时候,只需轻轻一瞥,就能瞬间解锁?这就是基于安卓系统的人脸识别技术的魅力所...
1km安卓系统下载,高效便捷的... 你有没有想过,手机系统升级竟然也能成为一场说走就走的旅行?没错,今天就要带你领略如何轻松下载1km安...