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