读书人

对设计方式Bridge模式的认识

发布时间: 2012-10-30 16:13:36 作者: rapoo

对设计模式—Bridge模式的认识
Bridge将抽象和行为划分开来,各自独立,可以动态结合变换.
随着社会的发展,交通要求便利,汽车成为交通的主要工具,有车可以加汽油,也可以加柴油.

public abstract class Car{    public CarImp carImp;    public abstract void buyOil();    public CarImp getCarImp()    {        return carImp;    }    public void setCarImp()    {        this.carImp = SingletonCarImp.getInstance();    }}public interface CarImp{    public void appendOil();}public class Truck extends Car{    public Truck()    {        setCarImp();    }    public void buyOil()    {        carImp.appendOil();    }}public class SaloonCar extends Car{    public SaloonCar()    {        setCarImp();    }    public void buyOil()    {        carImp.appendOil();    }}public class GasCarImp implements CarImp{    public void appendOil()    {        System.out.println("Append gasoline for salooncar");    }}public class DieselOilCarImp implements CarImp{    public void appendOil()    {        System.out.println("Append diesel oil for truck");    }}public class SingletonCarImp{    private static CarImp carImp;    public SingletonCarImp(CarImp carImp)    {        this.carImp = carImp;    }    public static CarImp getInstance()    {        return carImp;    }}public class TestBridge{    public static void main(String[] args)    {        SingletonCarImp singleton = new SingletonCarImp(new DieselOilCarImp());        Car truck = new Truck();        truck.buyOil();        Car saloonCar = new SaloonCar();        saloonCar.buyOil();    }}

Bridge模式看上去和Strategy差不多,很容易让人混淆,我的理解:
Strategy模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类.把多种算法提供给一方来选择变换,更注重算法的变换.
Bridge将抽象和行为划分开来,各自独立,但能动态结合变换.两边都可以进行动态变换结合,为平衡状态.Bridge模式是Strategy模式的延伸.
不知道理解的对不对,请高人指点.

读书人网 >软件开发

热点推荐