Java 中的集合与封装

主要观点:面向对象编程的核心概念封装在较新语言中通过一流属性解决良好,但 Java 需用 JavaBeans 规范实现封装。在集合类型字段中,封装和 JavaBean/getter/setter 模式很有用,例如对于MyClass类的myStrings字段,需提供访问器方法并遵循不返回null集合的原则,同时要注意处理null值及避免客户端直接操作内部列表等问题,最终可实现一个完全封装的类。
关键信息

  • 新语言如 Kotlin、Swift、Ceylon 用一流属性解决封装。
  • Java 用 JavaBeans 规范,类字段需私有,通过 getter 和 setter 方法暴露。
  • 集合类型字段应遵循不返回null集合原则,如MyClass类的getMyStrings方法。
  • 要注意处理null值,如setMyStrings方法处理传入null的情况。
  • 避免客户端直接操作内部列表,如更新setMyStrings方法。
  • 可添加其他方法如addString等方便操作。
    重要细节
  • Java 8 引入的 Optional 类,不应从返回 Optional 的方法中返回null
  • 对于MyClass类,初始getMyStrings方法可能返回null,需修改。
  • 传入nullsetMyStrings可能导致问题,需改进方法。
  • 改进后的setMyStrings方法可确保myStrings与输入参数元素一致或为空。
  • myStrings设为final,并通过getMyStrings的防御性拷贝避免客户端直接引用。
  • 可添加其他方便的方法如addStringsclearStringsreplaceStrings等。最终得到一个符合 JavaBean 规范且完全封装的类。
阅读 7
0 条评论