关于板桥道人写的bridge pattern的代码的疑问

03-02-15 yukunix

在http://www.jdon.com/designpatterns/bridge.htm

在定义class coffee中, 已经有了CoffeeImp成员变量,

和方法public CoffeeImp getCoffeeImp() {return this.CoffeeImp;}

可是在public class MediumCoffee extends Coffee中的

public void pourCoffee()里,为什么还要:

CoffeeImp coffeeImp = this.getCoffeeImp();

for (int i = 0; i < 2; i++)

    {

      coffeeImp.pourCoffeeImp();

    }

何必重新声明一个新的CoffeeImp,然后再让它等于Coffee里的CoffeeImp呢?

而且在MediumCoffee的构造函数里,已经用CoffeeImpSingleton.getTheCoffeImp()设置了需要的CoffeeImp.

  

  

  

  

banq
2003-02-15 20:29

这里面其实也蕴含一个模式,一般其他类的变量最好不要直接调用,哪怕是父类,使用getXXX方法来获得该变量。

yukunix
2003-02-16 14:29

原来是这样,只为了强烈遵守封装性,父类的变量也不可以直接调用。

谢了。