设计模式——桥接模式(Brigde Pattern)

桥接模式:

桥接模式是指将抽象部分和它的实际部分分离,使它们可以独立地变化。

桥接模式的构成:


桥接模式的各部分:

1、Abstraction接口:定义抽象部分的接口,维持Implementor对象的一个参考。

2、RedfinedAbstraction类:实现Abstraction的实类。

3、Implementor接口:定义implemention类的接口,规定一些常用的方法。

4、ConcreteImplementor类:实现了Implementor接口的类。


桥接模式的举例:

在购买杯饮时,会选择饮料的类型和容量,不同的类型和容量价格也相应不同,下面是运用桥接模式模拟这几种不同的组合得到的价格。


代码如下:

public interface TeaKind {
	public float price();
}

public class GreenTea implements TeaKind {
	public float price() {
		return 2.0f; //绿茶的价格  为了方便就没有定义成静态常量
	}
}

public class RedTea implements TeaKind {
	
	public float price() {
		return 3.0f; //红茶的价格  为了方便就没有定义成静态常量
	}
}


public interface TeaSize {
	public float getPrice();
}


public class MedTea implements TeaSize {
	public TeaKind teaKind;
	
	public MedTea(TeaKind teaKind) {
		this.teaKind = teaKind;
	}

	public float getPrice() {
		return 1.5f*teaKind.price();
	}
}

public class SupTea implements TeaSize {
	public TeaKind teaKind;
	
	public SupTea(TeaKind teaKind) {
		this.teaKind = teaKind;
	}

	public float getPrice() {
		return 2.5f*teaKind.price();
	}
}
运行结果:



桥接模式的应用场景:

1、当要避免抽象部分和实现部分的永久绑定,例如实现部分必须在运行时被选择的时候,使用桥接模式。


桥接模式的优缺点:

优点:

1、分离接口和实现部分。

2、提高了可扩展性。可以独立的经行扩充。

3、实现细节对客户的透明。即对客户隐藏实现细节。

缺点:

当有两个后两个以上唯度变化时,同时要增加聚合对象的内部方法,因为它不得不多写方法以便包含它的类调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值