我想在其他类中使用静态Map。如果你能告诉我哪种做法更好。我可以将其设为私有,并为密钥和值提供适当的getter和setter。另一方面,第二个选项只是声明它是公共的,并且在这些类中使用内置Map Collection中的方法。
第一个选项示例:
public class MapClass{
private static Map<int, String> map = new HashMap<>();
public String getValueForKey(int key){
return map.get(key);
}
// other methods
}
public class DifferentClass{
public void writeString(int number){
System.out.println(MapClass.getValueForKey(number));
}
}
第二个选项示例:
public class MapClass{
public static Map<int, String> map = new HashMap<>();
}
public class DifferentClass{
public void writeString(int number){
System.out.println(MapClass.get(number));
}
}
答案 0 :(得分:0)
我更愿意使用第一种方式。首先,如果可能的话,所有课程领域都应该是私人的。其次,对象不应该只是具有getter和setter的容器,但它们应该提供其他方法来更改数据(例如getValueForKey(int key)
,如第一个示例中所示)。
它在很多关于OOP的书中被广泛描述。