设计模式----桥接模式UML和实现代码

一、什么是桥接模式?

桥接模式(Bridge)定义:将抽象部分与它的实现部分分离,使它们都可以独立的变化。这里的实现指的是抽象类和它的派生类用来实现自己的对象。

类型:结构型模式

顺口溜:适装组享代外

二、桥接模式UML

005233_7A11_2003960.png

三、JAVA代码实现

package com.amosli.dp.bridge;

public abstract class Abstraction {
	abstract void operation(Implementor imp);
}


package com.amosli.dp.bridge;

public class RefinedAbstraction extends Abstraction {

	@Override
	void operation(Implementor imp) {
		imp.operationImp();
		System.out.println("refined impl..");
	}

}

package com.amosli.dp.bridge;

public abstract class Implementor {
	abstract void operationImp();
}

package com.amosli.dp.bridge;

public class ConcreteImplementorA extends Implementor {

	@Override
	void operationImp() {
		System.out.println("impl A...");
	}

}

package com.amosli.dp.bridge;

public class Client {
	public static void main(String[] args) {
		Abstraction abstraction = new RefinedAbstraction();
		abstraction.operation(new ConcreteImplementorA());
	}
}

四、使用场景

   在以下的情况下应当使用桥梁模式:
1.如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。 
2.设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。
3.一个构件有多于一个的抽象化角色和实现化角色,系统需要它们之间进行动态耦合。 
4.虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计要求需要独立管理这两者。
总结:
      Bridge模式是一个非常有用的模式,也非常复杂,它很好的符合了开放-封闭原则和优先使用对象,而不是继承这两个面向对象原则。

五、源码地址

本系列文章源码地址,https://github.com/amosli/dp  欢迎Fork  & Star !!



转载于:https://my.oschina.net/u/2003960/blog/534507

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值