java抽象类里面用该抽象类的子类作为成员变量,这是什么用法

时间:2022-06-09 12:46:47
大家好,今天在看struts时,看到以下的代码段:

public abstract class ValueStackFactory
{
  private static ValueStackFactory factory = new OgnlValueStackFactory();

  public static void setFactory(ValueStackFactory factory) {
    factory = factory;
  }

  public static ValueStackFactory getFactory() {
    return factory;
  }

  public abstract ValueStack createValueStack();

  public abstract ValueStack createValueStack(ValueStack paramValueStack);
}


public class OgnlValueStackFactory extends ValueStackFactory
{
  public ValueStack createValueStack()
  {
    return new OgnlValueStack();
  }

  public ValueStack createValueStack(ValueStack stack)
  {
    return new OgnlValueStack(stack);
  }
}

从上面可以看到ValueStackFactory是一个抽象类,而OgnlValueStackFactory继承了这个抽象类,但是前者把后者作为自己的成员变量声明了,请问这是什么用法?跟设计模式有关吗?

2 个解决方案

#1


在抽象类中的引用,设计模式的话,感觉有点像桥接模式;

#2


抽象工厂啊 兄弟

#1


在抽象类中的引用,设计模式的话,感觉有点像桥接模式;

#2


抽象工厂啊 兄弟