我的问题是关于在不同的类中存储时间值。考虑我们要存储信息的两个类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;}
现在,采用这种方法有几个缺点:
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而不是构造函数设置的,因此值可能会被意外覆盖,而构造函数会使记录值不可变。
将记录器分布在一堆类上容易出错。很容易忘记一个值,如果有错误,找到它可能会很繁琐(想象一下,而不是记录类Logger
和A
,将会有10个类,每个类有20个方法。 。)
实际问题是我要存储的信息是在不同位置和不同时间创建的,即B
中的值a3
的范围仅限于该方法。在这种情况下,您的设计建议是什么?
注意:我知道日志记录类a.doStuff()
,但我不想在这里使用它。
非常感谢你的帮助。 最大