Java有一种有趣的方法:给程序员一个选择只能降低编程体验,删除选择。
他们在很多地方都这样做。文件名和包是确定的,但也不允许一个文件中的多个公共类(永远不会好),也不允许您在文件之间拆分类(该死很难使用!)等等。
我真希望他们能走得更远。没有理由使用公共变量:我从来不需要一个变量,也从未见过某个聪明的程序员认为需要一个并且实际上是正确的情况。
我也不介意看到方法/类大小的限制,但这可能会变得粗略(它可以很容易地通过代码检查器实现,问题是最需要帮助的公司通常是那些不知道自己需要帮助的公司,因此不使用代码检查器之类的工具)。
对于大多数小团队来说,这并不重要,但当你的团队成长起来,并拥有来自印度、中国和世界各地不同地方的顾问的多个网站时,你就会开始体会到不灵活的一面。
针对setters/getters的评论:
Javabean是Borland创建的一个令人厌恶的东西,用来破解它们的GUI,然后再改造成Java。
可怕的想法-从OO编程中分散注意力-getter和setter A)显示了太多的实现,而B)让您思考如何操作来自另一个对象的数据,而不是要求其他对象为您执行操作。对那些还不能思考的人来说是个坏主意。
偶尔需要使用getter,但除非被认为是绝对不可避免的,否则不应该添加。
应不惜一切代价避免设置人。如果您绝对需要在构造对象之后外部修改状态,请尝试使用构建器模式,并在执行任何操作后保护您的setter不被调用。
显然,每件事都有例外,许多“getter”实际上是关键的对象业务逻辑,比如String.ength(),无论字符串是如何实现的,它都是必需的,甚至不通过返回属性来实现-如果您想称之为“getter”,这是一个很好的例子。