类模式Java设计模式之十五(桥接模式)类模式

类模式Java设计模式之十五(桥接模式)类模式,第1张

最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--类模式

    一、什么是接桥模式

    Bridge 模式又叫做接桥模式,是构造型的计设模式之一。Bridge模式基于类的最小计设准则,通过应用封装,聚合以及继承等行为来让不同的类担承不同的任责。它的要主特点是把抽象(abstraction)与行为实现(implementation)离分开来,从而可以坚持各部分的独立性以及应答它们的能功展扩。

    

    二、接桥模式的结构

    

    

    三、接桥模式的角色和责职

    Client
    Bridge模式的应用者

    Abstraction
    抽象类口接(口接或抽象类)
    护维对行为实现(Implementor)的引用

    Refined Abstraction
    Abstraction子类

    Implementor
    行为实现类口接 (Abstraction口接定义了基于Implementor口接的更高次层的作 *** )

    ConcreteImplementor
    Implementor子类

    

    代码实现:

    Implementor类:

package com.qianyan.bridge;

public interface Engine {

	/**
	 * 安装动员引擎
	 */
	public void installEngine();
}

    ConcreteImplementor类:

package com.qianyan.bridge;

public class Engine2000 implements Engine {

	@Override
	public void installEngine() {
		System.out.println("安装2000CC动员引擎");
	}

}
package com.qianyan.bridge;

public class Engine2200 implements Engine {

	@Override
	public void installEngine() {
		System.out.println("安装2200CC动员引擎");
	}

}

    Abstraction类:

package com.qianyan.bridge;

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();
}

    Refined Abstraction类:

package com.qianyan.bridge;

public class Bus extends Car {

	public Bus(Engine engine) {
		super(engine);
	}
	
	@Override
	public void installEngine() {
		System.out.print("Bus:");
		this.getEngine().installEngine();
	}

}
package com.qianyan.bridge;

public class Jeep extends Car {

	public Jeep(Engine engine) {
		super(engine);
	}
	@Override
	public void installEngine() {
		System.out.print("Jeep:");
		this.getEngine().installEngine();
	}

}

    Client类:

package com.qianyan.bridge;

public class MainClass {
	public static void main(String[] args) {
		Engine engine2000 = new Engine2000();
		Engine engine2200 = new Engine2200();
		
		Car bus = new Bus(engine2000);
		bus.installEngine();
		
		Car jeep = new Jeep(engine2200);
		jeep.installEngine();
	}
}

    Result:

Bus:安装2000CC动员引擎
Jeep:安装2200CC动员引擎

文章结束给大家分享下程序员的一些笑话语录: 问路
有一个驾驶热气球的人发现他迷路了。他降低了飞行的高度,并认出了地面 上的一个人。他继续下降高度并对着那个人大叫,“打扰一下,你能告诉我我 在哪吗?”
下面那个人说:“是的。你在热气球里啊,盘旋在 30 英尺的空中”。
热气球上的人说:“你一定是在 IT 部门做技术工作”。
“没错”,地面上的人说到,“你是怎么知道的?”
“呵呵”,热气球上的人说,“你告诉我的每件事在技术上都是对的,但对都没 有用”。
地面上的人说,“你一定是管理层的人”。
“没错”,热气球上的人说,“可是你是怎么知道的?”
“呵呵”,地面上的那人说到,“你不知道你在哪里,你也不知道你要去哪,你 总希望我能帮你。你现在和我们刚见面时还在原来那个地方,但现在却是我 错了”。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/2083095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-22
下一篇 2022-07-22

发表评论

登录后才能评论

评论列表(0条)

保存