如何解决冗余变量属性的Java类设计
考虑
Class A {
private Map<String,String> AXMap;
private Map<String,String> A1Map;
private Map<String,String> A2Map;
private Map<String,String> A3Map;
}
ClassB {
public void someMethod() {
List<ClassA> classAList = new ArrayList...
for i..0 to n {
ClassA classA = new ClassA();
populate A1Map;
populate A2Map;
populate A3Map;
classAList.add(classA)
}
}
上面的粗略逻辑只是为循环的每个A1Map
填充A2Map
,A3Map
,ClassA
并将其添加到最终列表中。我的设计问题是AXmap
对于所有迭代都保持不变。即使我填充一次,AXmap
列表的每个对象中也有相同的冗余ClassA
。我确实需要AXmap
以及其他地图。是否有更好的java设计原则。我所能想到的就是继承,final或Move AXMap
来分隔类并添加为组合等。
解决方法
最简单的方法是使用静态方法,因此AXMap将成为类变量,而不是对象变量,例如将在该类的所有对象之间共享。使它成为单例并在类的所有对象中使用的较简单的方法。我想说,使它成为单例的最简单方法是在项目中引入spring,并从AXMap中制作出spring bean。最后一种方法将为您带来一些便利,例如线程安全。
,正如您在评论中指出的那样,Singleton不适合此处,因为您将需要多个AXMap
对象。 Multiton 模式可能会有所帮助,这实际上是Singleton对象的注册表。在我的头顶上方,访问密钥可能是请求类型。如果请求的AXMap
对象不存在,则创建该对象,否则返回现有的对象。如果我已正确理解,这似乎很适合该问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。