封装类和使类更安全之间的区别

时间:2013-04-02 10:14:40

标签: java oop

我想知道Encapsulating类和使类更安全之间的区别。封装提供了一个抽象的接口层,用于与类进行通信,并隐藏类与外部世界的内部工作,同时安全性也具有类似的属性。 我们可以说每个封装类都是安全的,但是安全类不需要必须封装好吗?请帮我理解这两者之间的区别。

3 个答案:

答案 0 :(得分:3)

我们可以说每个封装的类都是安全的吗?

不,但封装是迈向安全的婴儿步骤

想象一下你的班级是一座有几十个窗户的建筑物。

enter image description here

为了完全固定建筑物,您必须覆盖所有开口:不仅是窗户,还有门,屋顶和后门。通过封装,您可以保护您的实现免受直接访问,从而关闭一个的窗口,但是......有几十个要去。

正如许多评论中所提到的,安全性是一个非常广泛的术语。您必须处理许多事情来声明您的类(和/或应用程序)是安全的。你可以从这些开始:

是否需要封装安全类?

没有。但这很难做到,因为大多数设计模式都会有一定程度的封装。在这种情况下,您可能正在实现Java的外部(例如,在操作系统或其他第三方工具的帮助下)。

答案 1 :(得分:1)

课程应该小而简单。这就是我所说的安全课程。

为了提高类的可靠性,应该限制其他开发人员对其成员和算法的访问。为了在OOP世界中这样做,开发人员使用一种称为封装的机制。通过将可见性设置为private来限制对类元素的访问,我们隐藏了代码如何处理任务的详细信息。这提高了安全性,因为其他开发人员无法在代码执行期间修改数据。

从我的观点来看,封装和“使类更安全”之间没有区别。通过使用封装,您的类根据定义更安全。您可以通过引入诸如immutable之类的概念来扩展该安全性,并通过使用关键字“final”使您的类接近继承机制。

但这更像是一个维基的答案和问题,所以没有好的答案。

非常感谢任何评论。

答案 2 :(得分:0)

封装是将您的逻辑封装到另一个类中,并在您的代码中调用它。

当我们在一个团队中工作时,我们会这样做 - 一个成员会说我打电话给我的方法你的工作将会完成。 。来电者不必担心实施。

“简单地将你的逻辑从你的班级中取出并通过方法调用它。”

但要安全地实施它

使用访问修饰符

和最终变量。 根据你的需要。