经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » 设计模式 » 查看文章
Java设计模式之桥接模式的实现
来源:jb51  时间:2021/6/7 9:22:33  对本文有异议

桥接模式

桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。

在这里插入图片描述

上图一个类被三个类继承,使我们的程序扩展性,可维护性低,违反了单一职责原则。

在这里插入图片描述

具体代码实现如下:

1.创建品牌接口

  1. package com.jialidun.gof.birdge;
  2.  
  3. //品牌
  4. public interface Brand {
  5.  
  6. void info();
  7. }

2.创建计算机的抽象类

  1. package com.jialidun.gof.birdge;
  2.  
  3. //抽象的电脑类型类
  4. public abstract class Computer {
  5.  
  6. //组合,品牌 桥
  7. protected Brand brand;
  8.  
  9. public Computer(Brand brand){
  10. this.brand = brand;
  11. }
  12.  
  13. public void info(){
  14. brand.info();//自带品牌
  15.  
  16. }
  17. }

3.苹果品牌

  1. package com.jialidun.gof.birdge;
  2.  
  3. //苹果品牌
  4. public class Apple implements Brand{
  5. @Override
  6. public void info() {
  7. System.out.print("苹果"+"\n");
  8. }
  9. }

4.联想品牌

  1. package com.jialidun.gof.birdge;
  2.  
  3. //联想品牌
  4. public class Lenovo implements Brand{
  5. @Override
  6. public void info() {
  7. System.out.print("联想"+"\n");
  8. }
  9. }

5.台式机

  1. package com.jialidun.gof.birdge;
  2.  
  3. public class Desktop extends Computer{
  4. public Desktop(Brand brand) {
  5. super(brand);
  6. System.out.print("台式机");
  7. }
  8. }

6.笔记本

  1. package com.jialidun.gof.birdge;
  2.  
  3. public class laptop extends Computer{
  4. public laptop(Brand brand) {
  5. super(brand);
  6. System.out.print("笔记本");
  7. }
  8. }

7.测试

  1. package com.jialidun.gof.birdge;
  2.  
  3. public class Test {
  4. public static void main(String[] args) {
  5. //苹果笔记本
  6. Computer computer = new laptop(new Apple());
  7. computer.info();
  8.  
  9.  
  10. //联想台式机
  11. Desktop desktop = new Desktop(new Lenovo());
  12. desktop.info();
  13.  
  14.  
  15. }
  16. }

在这里插入图片描述

好处分析:

1.桥接模式偶尔类似于多继承方案,但是多继承方案违背了类的单一职责原则, 复用性比较差,类的个数也非常多,桥接模式是比多继承方案更好的解决方法。极大的减少了子类的个数,从而降低管理和维护的成本

2.桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。符合开闭原则,就像一座桥,可以把两个变化的维度连接起来

劣势分析

1.桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。

2.桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围具有一定的局限性。

到此这篇关于Java设计模式之桥接模式分析的文章就介绍到这了,更多相关Java桥接模式内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号