如何在策略模式中使用不同策略的吸气剂

时间:2019-12-13 15:04:03

标签: design-patterns strategy-pattern

在下面的代码示例中,我正在通过main()中的getter访问类的每个属性,但是我认为这不是一个好的设计,因为返回的interfaceA将没有关于这些吸气剂的想法,即使通过编程也是正确的。

并且要有一个返回两个函数,每个函数都返回不同的类型。在接口本身中将吸气剂作为函数是一个好主意吗?在那种情况下,我将需要在我实现的所有类中实现。

请在此设计方面为我提供帮助,以了解如何访问实现相同接口的彼此不同的类的属性。

public interface interfaceA {
  method();
}
public classA implements interfaceA {
   int a;

int b;

   public method() { }

  public getA() {
    return a;
  }

public getB() {
    return b;
  }
}
public classB implements interfaceA {
  array arr;

   public method() { }

  public getArray() {
    return arr;
  }
}
public commonClass {

 public getClass() {
  if (condition) return new classA();
 else 
   return new classB();

 } 
}
public void main() {
  classDefinition = (new commonClass()).getClass();

if(condition)
  var a = classDefinition.getA();
  var b = classDefinition.getB();
else
  var array = classDefinition.getArray();
}

0 个答案:

没有答案