当一个getter返回一个属性,比如返回一个List
其他相关对象时,如果该列表和它的对象是不可变的,以防止类外的代码,改变这些对象的状态,而不知道主父对象?考虑到对象封装,应该让getters返回一个不可变属性?
例如,如果一个Contact
对象,具有getDetails
吸气剂,它返回ContactDetails
的List
一个对象,那么任何码调用该吸气剂:
- 可以从该列表中
ContactDetail
对象而不Contact
对象知道的它。 - 可以更改每个
ContactDetail
对象而不知道对象。
那么我们应该在这里做什么?我们是否应该相信调用代码并返回容易变化的对象,或者坚持不懈地为每个可变类创建一个不可变的类?
这是一个有趣的区别 - 天气或不是你自己的代码。我永远不会想到我写作安全的课程以外的任何东西。我不相信编程有什么优势,假设任何人给你打电话总是会得到正确的结果......如果在你的职业生涯中花费了20或30分钟的时间,那么跳过几行打字实际上可能会更快一些调试?键入这些额外的行几乎是免费的,而不是花在项目上的时间。 – 2009-04-20 23:35:53