微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();

原文地址:https://www.jb51.cc/java/123053.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐