在不同的地方记录变量

时间:2016-10-25 13:20:07

标签: java logging

我的问题是关于在不同的类中存储时间值。考虑我们要存储信息的两个类x <- array(1:24, c(4,3,2))A

B

我正在尝试在日志记录类

中记录有关在A类和B类中创建的值的信息
public class A{
     private final double a1 = 1d;

     public double doStuff(double a2, Logger logger)
           double a3 = a2 + a1
           logger.setA3(a3);
           return a3

public class B{
     private final double b1 = 1d;

     public double doStuff(double b2, Logger logger)
           double b3 = b2 + b1
           logger.setB3(b3);
           return b3;

将传递给A类和B类

public class Logger{
      private a3 = Double.NaN;
      private b3 = Double.NaN;

      public setA3(double a3){this.a3 = a3;}
      public setB3(double b3){this.b3 = b3;}

现在,采用这种方法有几个缺点:

  1. public static void main(String[] args){ Logger logger = new Logger(); A a = new A(); B b = new B(); a.doStuff(2d, logger); b.doStuff(2d, logger); 中的值是通过setter而不是构造函数设置的,因此值可能会被意外覆盖,而构造函数会使记录值不可变。

  2. 将记录器分布在一堆类上容易出错。很容易忘记一个值,如果有错误,找到它可能会很繁琐(想象一下,而不是记录类LoggerA,将会有10个类,每个类有20个方法。 。)

  3. 实际问题是我要存储的信息是在不同位置和不同时间创建的,即B中的值a3的范围仅限于该方法。在这种情况下,您的设计建议是什么?

    注意:我知道日志记录类a.doStuff(),但我不想在这里使用它。

    非常感谢你的帮助。 最大

0 个答案:

没有答案