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

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

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

一、封装简述

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

二、洞察概念

        “无论什么变化,将它封装起来”,这已经被引用成为一项著名的设计原则。软件的变化是无处不在的,运行时数据可能发生变化、未来的发布版本中实现可能发生变化。因此,封装既应用于封装数据也应该封装实现。
访问控制或通过隐藏实现细节来为数据或类型设置边界有两个原因:1) 限定使用者什么可用,什么不可用;2) 将实现细节与接口隔离。
        如果我们确定使用者只需要给公共的接口发送信息,其他的什么也不用做,那么我们就可以任意修改那些非公有的代码,而不影响使用者的代码。封装可以帮助我们实现上述目标。

三、与抽象的关系

        抽象本质是想法,用来帮助我们制定原则。封装是机制,通过机制实现抽象的目的。
        从面向对象的分析与设计(OOAD)的角度来看:
+ 抽象更多的是关于一个类可以做什么。【想法】
+ 封装更多的是如何实现一个功能。【实现】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值