使用getter访问静态对象,“公共静态”或“私有静态”的最佳实践

时间:2018-08-17 11:45:20

标签: java oop dictionary static

我有一个类Foo,其中包含一个static Map<String, String> myMap和一些public static方法,这些方法操纵myMap

myMap是我项目中某些类的通用Map(“通用内容”)。

需要myMap的那些类仅从其中读取数据,并始终使用myMap中的方法更改Foo中的数据。

我的问题是:就我而言,声明和访问myMap的最佳实践如何?以public static的身份访问和以Foo.myMap的身份访问,或者以private static的身份访问,以Foo.getMyMap()的身份访问,这将返回myMapnew HashMap<String, String>(myMap))的副本。还是这仅取决于我的喜好?

1 个答案:

答案 0 :(得分:3)

按照以下顺序执行以下步骤:

  1. 请尽量避免使用static,因为这与OOP原则无关。
  2. 如果您坚持使用static,则无论使用哪种访问方式,该字段都必须为final
  3. 相对于getters可见性修饰符,更喜欢public

但是,是的,这总是取决于您的偏好。