java – 具有地图的类的Getters / setters

前端之家收集整理的这篇文章主要介绍了java – 具有地图的类的Getters / setters前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为含有地图的课程实施/提供getter / setter的最佳做法是什么?

我看到的最常见的实现是:

public class MyClass {

  private Map<String,String> myMap;
  public getMyMap() { /* Return an unmodifiable map */ }
  public setMyMap(Map<String,String> myMap) { ... }
}

或者最好提供一个界面,如:

public getMyMap() { /* Return a modifiable map */ }
public addToMap(String key,String value) { myMap.put(key,value); }

为什么这样的方法更好?

解决方法

两者都有其用途.类暴露的方法应该具有适当的抽象级别.例如,如果该类是由Map< String,Dog>支持的狗的注册表,那么它可以提供以下方法
void addDog(String name,Dog dog);
Dog findByName(String name);

如果它是一个允许客户端在一个调用中指定整个规则集的规则引擎,那么它可以显示如下的方法

void setRules(Map<String,Rule> rules);
Map<String,Rule> getRules();

猜你在找的Java相关文章