我使用Java进行一些复杂的计算,并且有很多类需要访问许多相同的变量。这些变量在不同的类别中设置在计算的不同阶段。问题是我的代码变得非常混乱,因为我被迫将相同的参数传递给许多不同的方法。
我正在寻找人们对这里最佳方法的想法?我的一个想法是创建一个包含所有这些变量的超类,并在需要的任何地方扩展该类。
另一个选择是从一个方法传递一个持有所有这些信息的对象,但这似乎过于复杂。 这些解决方案都不是我最干净的方法。任何可能对我有帮助的设计模式/想法的想法或建议都表示赞赏。谢谢你的帮助。
答案 0 :(得分:2)
我建议使用Wrapper
对象是最好的方法。确保所有字段都是不可变的(Java中为final
关键字)。使用Builder
或Prototype
模式创建要返回的新对象。
答案 1 :(得分:0)
使用Singleton怎么样?通过这种方式,您可以在不传递任何实例的情况下对其进行全局访问,并且所有变量都将在一个屋檐下,从而减少混乱。
答案 2 :(得分:0)
我建议将问题世界(即变量)与单独类中的算法(即计算)分开。算法将在问题世界中传递,并相应地修改它。这可以看作Visitor Pattern的实现。
根据复杂性(变量数量,算法数量,解决方案路径的不确定性),您还可以实现黑板架构。但是,如果你没有在人工智能方面做些什么,我认为那将是一种矫枉过正的行为......
答案 3 :(得分:0)
如果要传递很多值,那么内存数据库可能是一个合适的解决方案。如今,许多数据库都提供了内存引擎,例如: MariaDB
答案 4 :(得分:-2)
创建一个超类的子类,然后在每次需要提取信息时引用超类的子类