桥接模式
概述
代码示例
原来的方式
/*
 * 汽车
 */
public interface Car {
	
	public void installEngine();
	
}
  public abstract class Bus implements Car {
	public abstract void installEngine();
}
public  abstract class Jeep implements Car {
	public abstract void installEngine();
	
}
  public class Bus2000 extends Bus{
	public void installEngine() {
		System.out.println("给Bus安装2000cc发动机");
	}
}
public class Bus2200 extends Bus {
	public void installEngine() {
		System.out.println("给Bus安装2200cc发动机");
	}
}
public class Jeep2000 extends Jeep{
	public void installEngine() {
		System.out.println("给Jeep安装2000cc发动机");
	}
	
}
public class Jeep2200 extends Jeep {
	public void installEngine() {
		System.out.println("给Jeep安装2200cc发动机");
	}
}  主函数
 public class MainClass {  
     public static void main(String[] args) {  
         Car car1 = new Bus2000();
         car1.installEngine();
     }
 }
桥接模式
public abstract class Car {
	private Engine engine;
	
	public Car(Engine engine) {
		this.engine = engine;
	}
	
	public Engine getEngine() {
		return engine;
	}
	public void setEngine(Engine engine) {
		this.engine = engine;
	}
	public abstract void installEngine();
}  public class Bus extends Car{
	public Bus(Engine engine) {
		super(engine);
	}
	public void installEngine() {
		System.out.print("Bus:");
		this.getEngine().installEngine();
	}
}
public class Jeep extends Car {
	public Jeep(Engine engine) {
		super(engine);
	}
	public void installEngine() {
		System.out.print("Jeep:");
		this.getEngine().installEngine();
	}
}  public interface Engine {
	public void installEngine();
}  public class Engine2000 implements Engine {
	public void installEngine() {
		System.out.println("安装2000cc发动机");
	}
}
public class Engine2200 implements Engine{
	public void installEngine() {
		System.out.println("安装2200cc发动机");
	}
}
  public class MainClass {
	public static void main(String[] args) {
		
		Engine engine2000 = new Engine2000();
		Engine engine2200 = new Engine2200();
		
		Car car1 = new Bus(engine2000);
		car1.installEngine();
		
		Car car2 = new Bus(engine2200);
		car2.installEngine();
		
		Car jeep1 = new Jeep(engine2000);
		jeep1.installEngine();
		
		Car jeep2 = new Jeep(engine2200);
		jeep2.installEngine();
		
	}
}  

京公网安备 11010502036488号