您的位置:首页 > 编程语言 > Java开发

【翻译】Java面向对象编程基本概念——封装

2016-08-03 15:16 225 查看

【翻译】Java面向对象编程基本概念——封装

原文地址:Java Encapsulation and its Relation With Abstraction

大多数开发人员对封装与抽象之间的异同都存在一些疑惑。网络上也有很多相关的博文,但大多数都使我们更加迷茫。今天,就让我们来拨开迷雾见云天。

一、封装简述

将数据和方法打包至一个类型中,并隐藏相关的实现细节通常称之为封装。封装的结果是一个类型既拥有了属性也拥有了行为。本质看,封装包括信息隐藏和实现隐藏。

二、洞察概念

“无论什么变化,将它封装起来”,这已经被引用成为一项著名的设计原则。软件的变化是无处不在的,运行时数据可能发生变化、未来的发布版本中实现可能发生变化。因此,封装既应用于封装数据也应该封装实现。

访问控制或通过隐藏实现细节来为数据或类型设置边界有两个原因:1) 限定使用者什么可用,什么不可用;2) 将实现细节与接口隔离。

如果我们确定使用者只需要给公共的接口发送信息,其他的什么也不用做,那么我们就可以任意修改那些非公有的代码,而不影响使用者的代码。封装可以帮助我们实现上述目标。

三、与抽象的关系

抽象本质是想法,用来帮助我们制定原则。封装是机制,通过机制实现抽象的目的。

从面向对象的分析与设计(OOAD)的角度来看:

+ 抽象更多的是关于一个类可以做什么。【想法】

+ 封装更多的是如何实现一个功能。【实现】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息