- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为用户定义的类实现基本工厂模式。例如,允许用户输入货币名称、汇率等的货币类别。原因是我希望允许添加 future 子类别的可能性。
我不想为每种可能的货币创建子类,因为详细信息是由用户输入的,并且这些货币也可能是虚构的。我也没有任何其他类(class)。
例如,这是我的代码,其中用户需要填写要创建的货币的类的参数。这一切都是在一个单独的类中完成的,并且它们被放置在一个列表中:
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;
}
我想我一定错过了一些东西,但我无法弄清楚。工厂模式有可能不应该以这种方式使用吗?
这是我第一次将这种设计模式与依赖注入(inject)结合使用。感谢您的帮助。
最佳答案
我认为您正在寻找的是 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);
}
如果其中一些是正确的,您将需要工厂设计模式:
恕我直言,除非您想要上述任何一个并且只想构造一个基于用户输入的对象,否则静态工厂方法就足够了。
关于java - 工厂模式是否只能用于一个用户定义的类并且不能用于子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59523051/
有一条(相对)众所周知的 Perl 公理:“只有 Perl 可以解析 Perl”。我想知道 Perl 6 是否仍然如此? 扩大讨论...考虑到 PyPy 最近的更新,我想到了这个问题。 Perl 独特
这是设置。在上一个问题中,我发现我可以通过子组件中的状态传递对象属性,然后使用 componentDidUpdate 获取该对象属性。在这种情况下,状态和属性都称为到达。 这是基本代码... expo
我运行的是 10.5.2 社区版。我已经标记了 源/主要/资源 作为源目录。我可以右键单击并“编译”某些文件,据我所知,这意味着 IDE 将文件复制到与发送类文件的“com.mydomain.pack
我是一名优秀的程序员,十分优秀!