23种设计模式之桥接模式

桥接模式(bridge):
就像一个桥,将两个变化维度连接起来。各个维度都可以独立的变化。故称之为:桥模式
核心要点:
-处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。
实际开发中应用场景
-JDBC驱动程序
-AWT中的Peer架构
-银行日志管理:
格式分类:操作日志、交易日志、异常日志
距离分类:本地记录日志、异地记录日志
-人力资源系统中的奖金计算模块:
奖金分类:个人奖金、团体奖金、激励奖金
部门分类:人事部门、销售部门、研发部门。
-OA系统中的消息处理:
业务类型:普通消息、加急消息、特急消息
发送消息方式:系统内消息、手机短信、邮件
代码实现:

public interface Brand {
	public void sale();
}
class Lenovo implements Brand{

	@Override
	public void sale() {
		System.out.println("售卖联想品牌电脑");
		
	}
	
}
class Dell implements Brand{

	@Override
	public void sale() {
		System.out.println("售卖Dell品牌电脑");
		
	}
	
}
public class Computer {
	protected Brand brand;

	public Computer(Brand brand) {
		super();
		this.brand = brand;
	}
	public void sale(){
		brand.sale();
	}
}
class Desktop extends Computer{

	public Desktop(Brand brand) {
		super(brand);
	}
	public void sale(){
		super.sale();
		System.out.println("销售台式电脑");
	}
}
class Notebook extends Computer{

	public Notebook(Brand brand) {
		super(brand);
	}
	public void sale(){
		super.sale();
		System.out.println("销售笔记本电脑");
	}
}
class Pad extends Computer{

	public Pad(Brand brand) {
		super(brand);
	}
	public void sale(){
		super.sale();
		System.out.println("销售平板电脑");
	}
}
public class Test {
	public static void main(String[] args) {
		Brand brand = new Dell();
		Computer c = new Notebook(brand);
		c.sale();
	}
}

总结:
桥接模式可以取代多层继承的方案。多层继承违背了单一职责原则,复用性较差,类的个数也非常多。桥接模式可以极大的减少子类的个数,从而降低管理和维护的成本。
桥接模式极大的提高了系统可扩展性,在两个变化维度中任意扩展一个维度,都不需要修改原有的系统,符合开闭原则。

猜你喜欢

转载自blog.csdn.net/JW614718/article/details/89599783