封装——以不变应万变

如题,个人感觉封装的思想可以总结如此。在结构化的程序设计中往往没有封装的概念,或者封装的概念很弱且不明确。没有封装就没有隔离,没有隔离就可以随意访问,于是客户代码与库代码之间产生了高度的耦合关系,此时只要更改库代码中的很小一部分东西,很可能造成客户代码不得不做相应的改变以适应库的更改,由于库代码中被修改的这个小部分东西可能被客户代码所广泛使用,因此这样的修改对于客户代码来说有可能是相当悲惨的,因为你不得不修改所有使用了该部分库代码的地方,正所谓牵一发而动全身,这在程序设计中应该是我们最不愿意看到的结果了。
封装的思想就恰好解决了这个问题,它将大量的实现细节隐藏起来,不让客户程序直接访问,而仅仅通过几个相对不变的接口来为客户程序提供相应的功能。由于客户程序是通过接口来使用库的相关功能的,所以只要接口不改变,库的内部实现可以任意修改而不会影响到客户程序。就好比一台电视机,最开始电视机(库)接收的是模拟信号来转换成声音和图像提供给看电视的人(客户),随着技术的提高,现在的电视机可以接收数字信号来转换成声音和图像提供给看电视的人。对于看电视的人来说,这种改变是无关紧要的,因为它不会对我们看电视这个需求造成任何差别(当然,后者的质量提高了,但功能没有改变),没有造成差别的原因则是因为显示器和扬声器这两个接口没有发生改变,所以内部的实现发生的变化对于我们来说是完全不必关注的(透明的)。从电视机这个例子我们还可以看出,封装还有个好处就是可以随时维护我们的内部实现,从而不断优化,而不必担心会对客户造成任何不良影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值