允许动态字段的Java实例类
我一直在查看一些java项目,发现不同开发人员/项目之间存在这种不一致性: (请注意:对于以下内容,将只存在一个Edibles,Edibles不需要有两个活动实例。) 项目1:允许动态字段的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
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。