本文主要是介绍《研磨设计模式》chap24 桥接模式bridge(1)基本概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
场景:现有“email“、“sms手机消息“两种发送消息方式,要加个是否“紧急消息“的类型区分,如何设计类?
1. 正常编码(不使用模式)
如果又要来个“特急“”类型,那类就更多了,这样肯定不好
2. 模式介绍
实际上场景是一种二维目标的应用(编者语)。
把x轴看成抽象类型,把y轴看成实现类型。
public interface Implementor {/*** 示例方法,实现抽象部分需要的某些具体功能*/public void operationImpl();
}//定义抽象部分的接口
public abstract class Abstraction {/*** 持有一个实现部分的对象*/protected Implementor impl;/*** 构造方法,传入实现部分的对象 * @param impl 实现部分的对象*/public Abstraction(Implementor impl){this.impl = impl;}/*** 示例操作,实现一定的功能,可能需要转调实现部分的具体实现方法*/public void operation() {impl.operationImpl();}
}public class ConcreteImplementorA implements Implementor {public void operationImpl() { //真正的实现}
}//扩充由Abstraction定义的接口功能
public class RefinedAbstraction extends Abstraction {public RefinedAbstraction(Implementor impl) {super(impl);}/*** 示例操作,实现一定的功能,可能会使用具体实现部分的实现方法,* 但是本方法更大的可能是使用Abstraction中定义的方法,* 通过组合使用Abstraction中定义的方法来完成更多的功能*/public void otherOperation(){//}
}
这篇关于《研磨设计模式》chap24 桥接模式bridge(1)基本概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!