桥模式:
将抽象与其实现解耦,使它们可以分别独立的变化,是继承的一种替代方案。
不管是门面模式,适配器模式还是桥模式,核心思想只有一个,就是软件开发人员在进行代码编写时,
对于两个类之间需要进行关联时,不要直接在一个类的代码中调用另一个类的代码,而是要通过这些设计模式,
在两个类直接建立一个类似于缓冲器的类,从而将直接关联的两个类进行解耦,以保证以后当一个类的接口
发生变化时不会影响另一个类的使用。
桥模式主要由四个部分组成:抽象类,抽象类继承类,实现类,实现类的继承类。
直接上演示代码:
模拟网上商城卖各种品牌的各种电脑!
// 定义一个产品的接口类
public interface Produce {
public void sale();
}
// 定义一个抽象的计算机类
public abstract class Computer {
private Produce produce;
public Computer(Produce produce) {
this.produce = produce;
}
public void sale() {
produce.sale();
}
}
// 台式机类
public class Desktop extends Computer{
public Desktop(Produce produce) {
super(produce);
}
@Override
public void sale() {
super.sale();
System.out.println("台式机");
}
}
// 笔记本类
public class NoteBook extends Computer {
public NoteBook(Produce produce) {
super(produce);
}
@Override
public void sale() {
super.sale();
System.out.println("笔记本电脑");
}
}
// 平板电脑类
public class Pad extends Computer {
public Pad(Produce produce) {
super(produce);
}
@Override
public void sale() {
super.sale();
System.out.println("平板电脑");
}
}
// 联想品牌产品类
public class Lenovo implements Produce{
public void sale() {
System.out.print("销售联想");
}
}
// 戴尔品牌产品类
public class Dell implements Produce{
public void sale() {
System.out.print("销售戴尔");
}
}
// 客户端运行类
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
Computer com = new Desktop(new Lenovo());
com.sale();
com = new Pad(new Dell());
com.sale();
}
}
====>>>>>运行结果:
销售联想台式机
销售戴尔平板电脑