java-桥接模式
Posted 鑫男
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java-桥接模式相关的知识,希望对你有一定的参考价值。
一 概念
桥接模式用于把抽象化与实现化解耦,使得两者可以独立变化。
这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。
实现要点:实现化类继承某个统一接口(桥接口),抽象化持有该接口的引用。
二 实例
比如我们A站点有A1,A2,A3, B站点有B1,B2,B3 我们要从A去到B
桥接口(实现化角色(Implementor)):Qiao
1 public interface Qiao { 2 //目的地B 3 void targetAreaB(); 4 }
目的地B1,B2,B3(具体实现化角色)
1 /** 2 * 目的地B1 3 */ 4 public class AreaB1 implements Qiao { 5 6 @Override 7 public void targetAreaB() { 8 System.out.println("我要去B1"); 9 } 10 11 } 12 13 /** 14 * 目的地B2 15 */ 16 public class AreaB2 implements Qiao { 17 18 @Override 19 public void targetAreaB() { 20 System.out.println("我要去B2"); 21 } 22 23 } 24 25 /** 26 * 目的地B3 27 */ 28 public class AreaB3 implements Qiao { 29 30 @Override 31 public void targetAreaB() { 32 System.out.println("我要去B3"); 33 } 34 35 }
抽象来源地A(抽象化角色)
1 public abstract class AreaA {
2 //引用桥接口
3 Qiao qiao;
4 //来源地
5 abstract void fromAreaA();
6 }
来源地A1,A2,A3(修正抽象化角色)
1 /**
2 * 来源地A1
3 */
4 public class AreaA1 extends AreaA {
5
6 @Override
7 void fromAreaA() {
8 System.out.println("我来自A1");
9 }
10
11 }
12
13 /**
14 * 来源地A2
15 */
16 public class AreaA2 extends AreaA {
17
18 @Override
19 void fromAreaA() {
20 System.out.println("我来自A2");
21 }
22
23 }
24
25 /**
26 * 来源地A3
27 */
28 public class AreaA3 extends AreaA {
29
30 @Override
31 void fromAreaA() {
32 System.out.println("我来自A3");
33 }
34
35 }
三 特点
1. 分离抽象部分和实现部分
桥梁模式分离了抽象部分和实现部分,从而极大的提高了系统的灵活性。让抽象部分和实现部分独立出来,分别定义接口,这有助于对系统进行分层,从而产生更好的结构化的系统。
2. 更好的拓展
桥梁模式使得抽象部分和实现部分可以分别独立的扩展,而不会相互影响,从而大大提高了系统的可扩展性。
以上是关于java-桥接模式的主要内容,如果未能解决你的问题,请参考以下文章