Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
允许动态字段的Java实例类_Java_Performance_Syntax_Instance_Instance Variables - Fatal编程技术网

允许动态字段的Java实例类

允许动态字段的Java实例类,java,performance,syntax,instance,instance-variables,Java,Performance,Syntax,Instance,Instance Variables,我一直在查看一些java项目,发现不同开发人员/项目之间存在这种不一致性: (请注意:对于以下内容,将只存在一个Edibles,Edibles不需要有两个活动实例。) 项目1: public class Edibles1 { private final HashMap<Integer, Food> edibleFoods = new HashMap<>(); private static final Edibles edibles = new Edib

我一直在查看一些java项目,发现不同开发人员/项目之间存在这种不一致性:

(请注意:对于以下内容,将只存在一个Edibles,Edibles不需要有两个活动实例。)

项目1:

public class Edibles1 {

    private final HashMap<Integer, Food> edibleFoods = new HashMap<>();

    private static final Edibles edibles = new Edibles();

    public static Edibles getEdibles() {
        return edibles;
    }

    //external usage for this project:
    public static void main(String[] args) {

        Food foodForId = Edibles.getEdibles().edibleFoods.get(123);
        System.out.println(foodForId);

    }



}
公共类可食性1{
private final HashMap edibleFoods=new HashMap();
私有静态最终Edibles Edibles=新Edibles();
公共静态Edibles getEdibles(){
归还食物;
}
//此项目的外部用途:
公共静态void main(字符串[]args){
Food foodForId=Edibles.getEdibles().edibleFoods.get(123);
System.out.println(foodForId);
}
}
项目2:

public class Edibles2 {

    private static final HashMap<Integer, Food> edibleFoods = new HashMap<>();

    //external usage for this project:
    public static void main(String[] args) {

        Food foodForId = Edibles.edibleFoods.get(123);
        System.out.println(foodForId);

    }



}
public-class-Edibles2{
private static final HashMap edibleFoods=new HashMap();
//此项目的外部用途:
公共静态void main(字符串[]args){
Food foodForId=Edibles.edibleFoods.get(123);
System.out.println(foodForId);
}
}
请记住,本项目只需要一种食用食品

在文档中,一些使用edibles1的开发人员写道,它更安全吗?尽管他们可能只是想与他们的类保持一致,因为即使项目只需要一个Edible,类似的类也需要多个,因此需要example1

那么,是开发人员只是想要一致性,还是有更深层次的含义/理解?

项目1(部分)正在实现一致性。我的部分意思是,它应该有一个私有构造函数,以便其他类只能通过静态
getEdibles()
方法访问单例

只有当其他类需要访问单例类并与之交互(获取/设置值、调用方法等)时,才需要单例设计模式


项目2没有实现单例DP。只有类的方法才能访问map
Edibles2

,因此如果只有Edibles需要访问edibleFoods字段,那么我应该坚持项目2?或者这并不重要;是的,只有当其他类需要与类的sinlge实例交互时,才应该应用Singleton DP。