定義:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
代碼:
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業務處理邏輯
}
}