【发布时间】:2019-03-21 08:31:28
【问题描述】:
这是一个关于代码结构而不是语法的问题。我正在构建一个包含多个 Java bean 对象的程序。 Java bean 有一个无参数构造函数。通常当我想要一个豆子时,我会这样做
MyBean bean = new MyBean();
bean.setPropertyOne("Foo");
bean.setPropertyTwo("Bar");
如果我有 12 种 bean 类型,并且每次需要新 bean 时我都会不断地重写上述版本,这似乎有很多潜在的冗余。有一个带参数的构造函数会更有意义,但这违背了 Java Bean 设计模式。我正在考虑创建一个不同的数据类,它具有所有不同 bean 的所有 Bean 创建方法,然后每次我需要时通过该类获取所需的 bean,这可能是有意义的。这将保持代码模块化。然后我可以按如下方式访问 bean:
MyBean bean = myBeanCreationUtility.makeMyBean("Foo", "bar");
当你编写软件时,通常使用什么样的设计模式来构建这个?
【问题讨论】:
-
工厂模式
-
你不能只使用 HashMap
吗?或者你可以看看 Kotlin,它相当简化了 POJO:kotlinlang.org/docs/reference/data-classes.html -
你可以创建both一个没有参数的构造函数(留空)和一个有参数的构造函数。
-
@JayBlack 是的,你可以在这里查看创建模式,看看哪一个更适合你的用例java-design-patterns.com/patterns
-
@JayBlack 阅读该页面更好:它说,像我一样,“如果该类至少有一个接受一个或多个参数的构造函数,它还必须有一个没有参数的构造函数有资格作为一个 JavaBean”。
标签: java design-patterns javabeans