设计模式---桥接模式

                                           桥接模式

概述

 

代码示例

原来的方式

/*
 * 汽车
 */
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();
		
	}
}

全部评论

相关推荐

赛博小保安:你这简历没啥大问题的,经历技能也足够了,问题应该就是出在出身了,学院本就是这样,HR忙着跟92的勾搭呢,哪有心思看我们这些双非😿😭
点赞 评论 收藏
分享
09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务