这里有新鲜出炉的 Java 设计模式,程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称.
这篇文章主要介绍了 Java 中桥接模式--对象结构型模式的实例详解的相关资料, 希望通过本文大家能掌握这部分知识,需要的朋友可以参考下
Java 中桥接模式--对象结构型模式的实例详解
一,意图
将抽象部分与它的实现部分分离,使他们都可以独立的变化.
二,适用性
以下一些情况使用 Bridge 模式
你不希望在抽象和它的实现部分之间有一个固定的绑定关系.例如这种情况可能因为,在程序运行时刻实现部分应可以被选择或者切换.
类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充.这时 Bridge 模式使你可以对不同的抽象接口和实现部分进行组合,并分别对他们进行扩充.
对一个抽象的实现部分的修改应对客户不产生影响,即客户代码不必重新编译.
(C++) 你想对客户完全隐藏抽象的实现部分.在 C++ 中,类的表示在类接口中是可见的.
三,结构
四,代码
public interface Implementor {
/**
* 实现抽象部分的具体方法
*/
public void operationImpl();
}
public class ConcreteImplementorA implements Implementor {@Override public void operationImpl() {
System.out.println("ConcreteImplementorA");
}
}
public class ConcreteImplementorB implements Implementor {@Override public void operationImpl() {
System.out.println("ConcreteImplementorB");
}
}
public abstract class Abstraction {
private Implementor mImplementor;
/**
* 通过实现部分对象的引用构造抽象部分的对象
*
* @param implementor 实现部分对象的引用
*/
public Abstraction(Implementor implementor) {
mImplementor = implementor;
}
public void operation() {
mImplementor.operationImpl();
}
}
public class RefinedAbstraction extends Abstraction {
/**
* 通过实现部分对象的引用构造抽象部分的对象
*
* @param implementor 实现部分对象的引用
*/
public RefinedAbstraction(Implementor implementor) {
super(implementor);
}
public void refinedOperation() {
//对 Abstraction中的方法进行扩展.
System.out.println("refinedOperation");
operation();
}
}
public class Client {
public static void main(String[] args) {
Abstraction abstraction = new RefinedAbstraction(new ConcreteImplementorA());
abstraction.operation();
}
}
来源: http://www.phperz.com/article/18/0120/353727.html