在大量类之间共享变量的最佳方法是什么?

时间:2016-01-28 09:48:28

标签: java design-patterns

我使用Java进行一些复杂的计算,并且有很多类需要访问许多相同的变量。这些变量在不同的类别中设置在计算的不同阶段。问题是我的代码变得非常混乱,因为我被迫将相同的参数传递给许多不同的方法。

我正在寻找人们对这里最佳方法的想法?我的一个想法是创建一个包含所有这些变量的超类,并在需要的任何地方扩展该类。

另一个选择是从一个方法传递一个持有所有这些信息的对象,但这似乎过于复杂。 这些解决方案都不是我最干净的方法。任何可能对我有帮助的设计模式/想法的想法或建议都表示赞赏。谢谢你的帮助。

5 个答案:

答案 0 :(得分:2)

我建议使用Wrapper对象是最好的方法。确保所有字段都是不可变的(Java中为final关键字)。使用BuilderPrototype模式创建要返回的新对象。

答案 1 :(得分:0)

使用Singleton怎么样?通过这种方式,您可以在不传递任何实例的情况下对其进行全局访问,并且所有变量都将在一个屋檐下,从而减少混乱。

答案 2 :(得分:0)

我建议将问题世界(即变量)与单独类中的算法(即计算)分开。算法将在问题世界中传递,并相应地修改它。这可以看作Visitor Pattern的实现。

根据复杂性(变量数量,算法数量,解决方案路径的不确定性),您还可以实现黑板架构。但是,如果你没有在人工智能方面做些什么,我认为那将是一种矫枉过正的行为......

答案 3 :(得分:0)

如果要传递很多值,那么内存数据库可能是一个合适的解决方案。如今,许多数据库都提供了内存引擎,例如: MariaDB

答案 4 :(得分:-2)

创建一个超类的子类,然后在每次需要提取信息时引用超类的子类