23种设计模式桥连模式Bridge

两盒软妹~` 提交于 2019-12-04 05:42:47

重点内容
1.什么是桥梁模式
2.哪些地方用到桥梁模式
3.桥梁模式的优点

桥梁模式:(bridge)又称桥接模式,属于结构型。主要考虑对象结构,对象之间的依赖关系等

通用类图:

这里写图片描述

哪些地方用到桥梁模式?

由于实际的需要,某个类具有两个或两个以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿。这样可以考虑到桥接模式

Eg:通过cpu 和品牌可以判定电脑的优劣。那么三者之间的关系可以使用桥接模式进行描述(这样说有些牵强)

下面贴上源码:

public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// intel
		IcpuAvaliable iAvaliable = new IntelCpuIml();
		AbComputerBrank abComputerBrank = new MacComputer(iAvaliable);
		abComputerBrank.checkComputer();

		iAvaliable = new AmdCpuIml();
		abComputerBrank = new MacComputer(iAvaliable);
		abComputerBrank.checkComputer();

	}

}

实现:

public interface IcpuAvaliable {

	/**
	 * cpu 能力
	 */
	public String cpuAvaliable();
}
public class IntelCpuIml implements IcpuAvaliable {

	@Override
	public String cpuAvaliable() {
		
		return "intel 性能比较高";
	}

}
public class AmdCpuIml implements IcpuAvaliable {

	@Override
	public String cpuAvaliable() {
		return "Amd 性能一般";
	}

}

抽象:

/**
 * 抽象部分
 * @author weichyang
 *
 */
public abstract class AbComputerBrank {

	public IcpuAvaliable icpuAvaliable;

	public AbComputerBrank(IcpuAvaliable icpuAvaliable) {
		this.icpuAvaliable = icpuAvaliable;
	}

	/**
	 * 品牌维度
	 */
	public abstract void checkComputer();
}
public class LenoveComputer extends AbComputerBrank {

	public LenoveComputer(IcpuAvaliable icpuAvaliable) {
		super(icpuAvaliable);
	}

	@Override
	public void checkComputer() {
		System.out.println("华硕笔记本CPU性能" + super.icpuAvaliable.cpuAvaliable());
	}

}
public class MacComputer extends AbComputerBrank {

	public MacComputer(IcpuAvaliable icpuAvaliable) {
		super(icpuAvaliable);
	}

	@Override
	public void checkComputer() {
		System.out.println("Mac电脑的cpu" + super.icpuAvaliable.cpuAvaliable());
	}

}

Ok:那么桥梁模式的优点,不同对象间的组合产生不同的结果,将抽象和实现进行分离,当然,如果要扩展功能的,只要实现相应的接口,继承对应的类。就可以
它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。

http://www.cnblogs.com/draem0507/p/3794530.html
https://blog.csdn.net/hguisu/article/details/7529194 桥连模式Bridge(结构型

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!