定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。
代码:
package bridge_model;
/**
* @author naivor
* 桥接模式-场景类
*/
public class BirdgeModel {
public static void main(String[] args) {
Abstraction abstraction=new AbstractionA(); //在整个系统中,abstraction和implementor都可以独立的变化
Implementor implementor=new ImplementorA(); //比如任意一个或全部换成B类型类
abstraction.setImplementor(implementor);
abstraction.operate();
}
}
/**
* @author naivor
* 桥接模式-实现部分抽象类
*/
abstract class Implementor{
public abstract void doSomething();
}
/**
* @author naivor
* 桥接模式-实现部分类A
*/
class ImplementorA extends Implementor{
@Override
public void doSomething() {
//ImplementorA业务处理逻辑
}
}
/**
* @author naivor
* 桥接模式-实现部分类B
*/
class ImplementorB extends Implementor{
@Override
public void doSomething() {
//ImplementorB业务处理逻辑B
}
}
/**
* @author naivor
* 桥接模式-抽象部分抽象类
*/
abstract class Abstraction{
private Implementor implementor;
public void setImplementor(Implementor implementor){
this.implementor=implementor;
}
public void operate(){
implementor.doSomething();
};
}
/**
* @author naivor
* 桥接模式-抽象部分类A
*/
class AbstractionA extends Abstraction{
@Override
public void operate() {
// TODO Auto-generated method stub
super.operate();
doOtherthingA();
}
private void doOtherthingA(){
//AbstractionA业务处理逻辑
}
}
/**
* @author naivor
* 桥接模式-抽象部分类B
*/
class AbstractionB extends Abstraction{
@Override
public void operate() {
// TODO Auto-generated method stub
super.operate();
doOtherthingB();
}
private void doOtherthingB(){
//AbstractionA业务处理逻辑
}
}