gpt4 book ai didi

java - 如何处理一次性执行 "code piece"或方法?

转载 作者:行者123 更新时间:2023-11-29 06:44:01 26 4
gpt4 key购买 nike

我经常遇到这种情况。

class A{
public static boolean flag = true;

public void method(){
// calls method in class B
B b = new B();
while(someCondition){
b.method();
}
}
}

.

class B{

public void method(){
if(A.flag){
// Read all data from a flat file and store it in HashMAp/ArrayList etc
//only for the first time
A.flag = false;
}
// Manipulate the data
}
}

我似乎经常在完全不同的情况下遇到这种情况。

通常是这样处理的吗?我觉得使用静态变量和 if 语句来解决问题有点愚蠢和不自然。

在这种情况下,我不想在每次执行方法时都读取数据而造成开销。

最佳答案

看来您需要单例模式。弄清楚 B 在第一次使用时需要加载什么数据,并将其打包到一个单独的类中,该类用作单例实例。参见 this link有关如何在 Java 中实现单例模式的更多信息。

按照这种模式,您可以避免每次调用方法 时都检查标志的需要,并且可以同时避免任何线程问题(如果有的话)。

关于java - 如何处理一次性执行 "code piece"或方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8138784/

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