我正在尝试为用户定义的类实现基本的工厂模式。例如,一类货币,它允许用户输入货币名称,汇率等。原因是我希望允许将来添加子类。
我不想为每种可能的货币创建子类,因为用户输入了详细信息,并且这些货币也可能是虚构的。我也没有其他班级。
例如,这是我的代码,要求用户在其中输入要创建货币的类的参数。这些都是在单独的类中完成的,它们被放置在列表中:
public String code;
public String name;
public boolean major;
public Currency(String code, String name, boolean major) {
this.code = code;
this.name = name;
this.major = major;
}
我想我一定会丢失一些东西,但我无法弄清楚。是否有可能不应该以这种方式使用工厂模式?
这是我第一次同时使用这种设计模式和依赖注入。谢谢您的帮助。
我认为您正在寻找的是static factory method,而不是Factory Method Pattern,即您可能只需要这个,
private Currency(String code, String name, boolean major) {
this.code = code;
this.name = name;
this.major = major;
}
public static Currency of(String code, String name, boolean major) {
return new Currency(code, name, major);
}
如果其中一些是正确的,那么您将需要工厂设计模式:
恕我直言,除非您需要上面的任何内容,而只是想构造一个基于对象的用户输入,就需要静态工厂方法。