gpt4 book ai didi

java - java应用程序中跨多个服务的增量计数器DTO对象属性?

转载 作者:行者123 更新时间:2023-12-01 10:47:13 25 4
gpt4 key购买 nike

我有一个 java 应用程序,它有一个主类和多个服务、DAO 和 DTO。这是一个使用 JDBC 进行 DAO 的 java 项目。我没有使用 spring 或其他任何东西。

例如 Counter DTO 对象是:

public class CountDTO{
private int passengers;
private int repairs;
private int miles;
private int errors;

//getters & setters ....

}

主类:

public class Taxi(){
public static void main(String[] args){

CountDTO countDTO = new CountDTO();

if(noCarAvailable()){
countDTO.setErrors(countDTO.getErrors()++); //DOING INCREMENT HERE
}else(){
TaxiService taxiService = new TaxiServiceImpl();
taxiService.start();
}
}
}

如您所见,在主类中,我想增加找不到汽车时的错误数量。

同样,在其中一种服务类别中,我需要增加和减少乘客数量。

并且可能在另一项服务中,我需要不断增加总行驶里程,以了解出租车在主类(class)结束之前行驶了多少英里。

所以我的问题是,如何保留计数(CounterDTO int 属性值)以发送包含这些计数值的电子邮件?而且我不想在主类中初始化 CountDTO 并将其作为参数传递给所有需要增加其属性值的服务方法。

最佳答案

如果您只有 1 个实例,则可以将 CountDTO 转换为单例:

public class CountDTO {

private static final CountDTO instance = new CountDTO();

public static CountDTO getInstance() {
return instance;
}

private CountDTO() {}

...
}

如果您要同时访问来自不同服务的值,您还需要将 CountDTO 中的变量标记为 volatile

关于java - java应用程序中跨多个服务的增量计数器DTO对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34098551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com