如题,个人感觉封装的思想可以总结如此。在结构化的程序设计中往往没有封装的概念,或者封装的概念很弱且不明确。没有封装就没有隔离,没有隔离就可以随意访问,于是客户代码与库代码之间产生了高度的耦合关系,此时只要更改库代码中的很小一部分东西,很可能造成客户代码不得不做相应的改变以适应库的更改,由于库代码中被修改的这个小部分东西可能被客户代码所广泛使用,因此这样的修改对于客户代码来说有可能是相当悲惨的,因为你不得不修改所有使用了该部分库代码的地方,正所谓牵一发而动全身,这在程序设计中应该是我们最不愿意看到的结果了。
封装的思想就恰好解决了这个问题,它将大量的实现细节隐藏起来,不让客户程序直接访问,而仅仅通过几个相对不变的接口来为客户程序提供相应的功能。由于客户程序是通过接口来使用库的相关功能的,所以只要接口不改变,库的内部实现可以任意修改而不会影响到客户程序。就好比一台电视机,最开始电视机(库)接收的是模拟信号来转换成声音和图像提供给看电视的人(客户),随着技术的提高,现在的电视机可以接收数字信号来转换成声音和图像提供给看电视的人。对于看电视的人来说,这种改变是无关紧要的,因为它不会对我们看电视这个需求造成任何差别(当然,后者的质量提高了,但功能没有改变),没有造成差别的原因则是因为显示器和扬声器这两个接口没有发生改变,所以内部的实现发生的变化对于我们来说是完全不必关注的(透明的)。从电视机这个例子我们还可以看出,封装还有个好处就是可以随时维护我们的内部实现,从而不断优化,而不必担心会对客户造成任何不良影响。
分享到:
相关推荐
ESP8266封装——AD
本压缩包包含的资料着重于如何使用C语言和C++对Socket进行封装,以实现一对一对话的功能。 在C语言中,Socket API通常由一系列函数组成,如`socket()`、`bind()`、`listen()`、`accept()`、`connect()`、`send()`和...
综上所述,SOP和SSOP封装是电子设计中的重要元素,它们在Protel的PCB库中以"SSOP.LIB"和"SO.LIB"文件形式存在,为设计师提供了丰富的图形模型资源。理解并熟练运用这些封装,对于提高PCB设计质量和效率至关重要。
Android——okhttp的封装,Android——okhttp的封装,Android——okhttp的封装,Android——okhttp的封装,Android——okhttp的封装
### 面向对象编程之封装 #### 一、面向对象三大特征概述 面向对象编程(OOP)是一种软件设计范式,它将程序中的数据和处理数据的方法组织在一起,形成对象。面向对象编程的三大核心特征分别是:封装、继承和多态。 ...
"IGBT^4技术提高了应用性能 半导体技术与封装——完美的匹配" IGBT^4技术是近年来半导体技术和封装技术的重大突破,它使得应用性能得到了极大的提高。该技术的出现标志着IGBT技术的第四代,相比于第三代IGBT,该...
一个完整的封装库应包含所有可能用到的元器件封装,以满足设计需求。 **QFP封装库**: 1. **创建与编辑**:设计师需要根据具体QFP元件的规格参数,如引脚数量、引脚间距、封装尺寸等,在封装库中创建或编辑QFP封装...
c#面向对象——封装
本文探讨了IGBT4技术如何提高应用性能,特别是在半导体技术和封装方面实现的完美匹配。IGBT(绝缘栅双极晶体管)和二极管在电力电子设备中作为开关元件使用,理想状态下的开关应具备零通态压降、零反向电流、零开关...
半导体封装是指将芯片在框架或基板上布局、粘贴固定及连接,引出接线端子并通过塑封固定,构成整体立体机构的工艺。封装的目的和作用主要有:保护、支撑、连接、可靠等。按照封装的外形可分为DIP、SOT、SOP、QFP、...
《Xilinx FPGA封装库大全详解》 Xilinx是一家全球领先的半导体公司,以其FPGA(现场可编程门阵列)技术闻名于世。FPGA是一种高度灵活的集成电路,用户可以根据需求自定义逻辑电路,广泛应用于通信、计算、图像处理...
半导体封装工艺讲解——芯片制造流程课件PPT.pdf
Android实战——Retrofit2的使用和封装
总的来说,高速PCB布线和封装设计是高度专业化的领域,它需要设计者具备深厚的理论知识和实践经验,以确保电子产品的性能达到设计标准。通过采用适当的封装类型、引脚排列以及布线策略,设计者能够有效减少电磁干扰...
Android实战——okhttp的使用和封装
(个人不推荐下载,下载请谨慎) AD三维封装库 内含不同pin的排针和排母 相对精美 有3D 只有pcblib,即只有三维封装库 不含有原理图库,有需要请联系我
SD_Card封装库————————————————————————————
复归于道——封装改道芯片业.pdf
在C++中,通常我们并不直接使用操作系统提供的Socket API,而是通过自定义的Socket类来封装这些函数,以提高代码的可读性和可维护性。例如,`Socket.cpp`可能包含了创建、连接、发送、接收等基本操作的封装,而`...