可能的重复:
Allen Holub 写道“你永远不应该使用 get/set 函数”,他是对的吗? https://stackoverflow.com/questions/996179/allen-holub-wrote-you-should-never-use-get-set-functions-is-he-correct
有没有好的,没有,有very有充分的理由,要经历在面向对象语言中使用 getter 和 setter 的所有麻烦吗?仅使用对属性或方法的直接引用有什么问题?是否存在某种人们不想在礼貌的公司中谈论的“语义掩盖”?当有人走出来说“你应该编写大量代码来获取 Getter 和 Setter”时,我是否太累了,睡着了?
一年后随访:
这在 Java 中似乎很常见,而在 Python 中则较少。我开始怀疑这是否更多的是一种文化现象(与语言的局限性有关)而不是“圣人建议”。 http://cafe.elharo.com/programming/java-is-dead-long-live-python/由于我不使用 Java 编程(目前是我自己选择的),所以我无法做出这样的评估。
就我而言,当前(当前截至2010年3月22日撰写本文)-1问题得分已完成。有趣的是,有些特定问题被否决,并不是因为它们是“坏问题”,而是因为它们击中了某人的观点原始神经.
那么让我们来谈谈问题的本质吧。我重复一遍:
What's wrong with just using a direct reference to a property or method?
这是不成文的推论:
Are we so undisciplined as programmers that we can't keep our hands off of things that are clearly marked "no touchy"?
这是艾伦·霍鲁布(Allen Holub)(他很聪明)就此事 http://www.javaworld.com/javaworld/jw-01-2004/jw-0102-toolbox.html?page=1。他在中对这个主题进行了更详细的介绍Holub 谈模式 https://rads.stackoverflow.com/amzn/click/com/159059388X。有些东西需要公共 getter 和 setter,例如序列化和模式,例如数据传输对象模式 http://msdn.microsoft.com/en-us/library/ms978717.aspx。一般来说,我认为必要的邪恶,因为当你不使用它们时你的应用程序会变得复杂。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)