谈面向对象的封装

封装是面向对象最重要的特征之一,封装就是指隐藏。

之前教科书上的内容关于封装只是认为隐藏了数据和方法,很少有人提到隐藏了具体实现,而这点在《Java编程思想》这本书籍里,被称为被隐藏的实现,而在《设计模式精解》里,封装的概念包含了实现的隐藏。


我们这里归纳下,看看到底封装可以做些什么:

  • 对象隐藏了数据(例如Java语言的private属性),避免了其他对象可以直接使用对象属性而造成程序之间的过度依赖,也可以阻止其他对象随意修改对象内部数据而引起对象状态的不一致。
  • 对象隐藏了实现细节。
  1. 使用者只能使用公有的方法而不能使用那些受保护的或者私有的方法,你可以随意修改这些非公有的方法而不会影响使用者;
  2.  可以隐藏具体类型,使用者不必知道对象真正的类型就可以使用它们(依赖于接口和抽象带来的好处);
  3. 使用者不需要知道与被使用者有关而与使用者无关的那些对象或者变量,减少了耦合。

由于只能通过公用接口和方法使用它们,客户程序就不能使用那些受保护的方法(例如Java语言里的private方法和protected方法),而你可以随意修改这些方法,并不会影响使用者,从而降低了耦合度。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值