java设计模式7——桥接模式
程序员文章站
2022-06-27 21:17:43
1、桥接模式介绍
2、解决问题
3、代码演示
4、类图示意
5、好处分析
6、弊端分析
7、最佳实现
8、现已经使用的场景 ......
java设计模式7——桥接模式
1、桥接模式介绍
桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立的变化。它是一种对象结构型模式,又称为柄体模式或接口模式。
2、解决问题
2.1、将复杂的组合设计问题转变为可以桥接的组合问题。如电脑的例子,电脑有类型和品牌,两者可以任意组合。
2.2、没有用设计模式时的示意图
2.3、使用桥接模式后的示意图
将这个场景中的两个变化的维度分离,品牌和类型。两者通过桥接进行两两组合。
3、代码演示:
3.1、编写品牌的抽象类
package com.xgp.company.结构性模式.桥接模式; /** * 品牌类 */ public interface brand { void info(); }
3.2、由抽象类诞生出品牌
苹果:
package com.xgp.company.结构性模式.桥接模式; /** * 苹果品牌 */ public class apple implements brand { @override public void info() { system.out.print("苹果"); } }
联想:
package com.xgp.company.结构性模式.桥接模式; public class laptop extends computer { public laptop(brand brand) { super(brand); } @override protected void info() { super.info(); system.out.println("笔记本"); } }
3.3、电脑类型的抽象类
package com.xgp.company.结构性模式.桥接模式; /** * 抽象的电脑类型类 */ public abstract class computer { //组合:品牌,电脑自带品牌 protected brand brand; public computer(brand brand) { this.brand = brand; } protected void info() { //自带品牌 brand.info(); } }
3.4、由电脑类型的抽象类诞生实现类
台式电脑:
package com.xgp.company.结构性模式.桥接模式; public class desktop extends computer { public desktop(brand brand) { super(brand); } @override protected void info() { super.info(); system.out.println("台式机"); } }
笔记本电脑:
package com.xgp.company.结构性模式.桥接模式; public class laptop extends computer { public laptop(brand brand) { super(brand); } @override protected void info() { super.info(); system.out.println("笔记本"); } }
3.5、编写测试类,进行桥接
package com.xgp.company.结构性模式.桥接模式; public class test { public static void main(string[] args) { //苹果笔记本 computer computer = new laptop(new apple()); computer.info(); //联想台式机 computer computer12 = new desktop(new lenovo()); computer12.info(); } }
输出结果:
苹果笔记本 联想台式机
4、类图示意:
5、好处分析:
6、弊端分析:
7、最佳实现
8、现已经使用的场景
上一篇: 还记得第一个看到的Flutter组件吗?