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

yukunix 03-02-15

在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

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