java封装点

时间:2015-02-27 23:39:34

标签: java encapsulation uglifier

我试图弄清楚为什么人们说这是一种阻止访问您不想要的类文件的好方法,但我不能仅使用反射来访问该类?不要混淆以防止未经授权的访问,因为即使他们使用反射,没有人知道你的代码会做什么吗?

3 个答案:

答案 0 :(得分:1)

封装的目的是阻止访问您的实现内部类以便更清晰的代码,而不是技术上阻止您的类的用户使用反射访问实例或反编译它。

例如,如果您有HTTP客户端,则应封装您使用的流和缓冲区,并仅将请求和响应公开给您的类的实际用户。这是为了让你的 - 和他们的 - 代码更清晰,而不是让他们永远不会反思你的课程。此外,由于唯一的API用户访问的是外部API,因此您可以根据需要随意更改类或代码的内部。

答案 1 :(得分:1)

封装是一种向其他程序员传达他们应该和不应该对您的数据做什么的方法。他们总是可以绕过这一点,但是通过使其变得更加困难,你有效地告诉他们在访问封装数据时要非常谨慎,并警告他们你可以随时改变你的实现并破坏任何依赖它的代码。 / p>

封装类似DRM的方法来保护您的代码和数据免受恶意访问。

答案 2 :(得分:1)

封装不是要阻止访问后端代码,而是关于表示边界。它可以帮助程序员轻松编写可伸缩可修改的代码。从这里开始,“分离关注”等原则将会出现。