DUPE:实践中的私人与公共成员(封装有多重要?)
在用Java编写程序的过程中,我已经抽象出了一些库,我可以在将来的项目中看到这些库.
为什么我要为这些方法中的任何一种设置限制访问(私有/受保护)而烦恼?
看起来这将使我的生活在未来变得更加复杂.如果我在所有事情上使用公开,我将永远不必担心我是否可以从其他类别中调用某些内容.我从来没有在我的任何代码中看到过一个案例,但除了公共之外我还没有使用任何其他内容.
在所有事情上使用'公共'是错误的吗?我会被Java神击倒吗?
是的,在所有事情上使用公共是错误的.这意味着你绝对没有"这个成员是公共API的一部分;你应该能够从外部世界使用它,它不应该改变"和"这个成员是一个实现"之间的区别的概念如果我想稍后改变它,我可以这样做,因为我知道外面世界什么都不会叫它."
在API和实现之间进行明确划分对于IMO的灵活性和清晰度非常重要.