封装就是将数据或函数等集合在一个个单元中(也就是类),有时候会是一个dll库。被封装的对象通常被称为抽象数据类型。
封装的意义在于保护或防止代码(数据)被我们无意间破坏,比如建一些变量的转换,有时候就破坏了一些原来的数据。
封装既可以是一些成员变量,也可以是一种方法。
还有一种理解:
我们可以把程序按照某种规则分成很多块,块与块之间可能会有联系,每个块都有一个可变部分和一个稳定部分。我们需要把可变的部分和稳定的一部分分离出来,将稳定的部分交给其他的块,而将可变的部分隐藏起来,以便随时可以将它进行修改,这项工作就是封装了。
例如:
在用类实现某个逻辑的时候,类就是以上说的块,实现功能的具体就是可变的部分,而public的方法或者属性是稳定的部分。
使用封装会有以下好处:
1,使用者只需要了解如何通过类的接口使用类,而不用关心内部的数据结构和数据组织方法,一个很有名的例子:modbus的国际通用lib库。
2,高内聚,低耦合,这本来就是所有软件工程师都追求的。
3,只要对外接口不改变,可以任意修改封装函数的内部即可,可以应变多种变化。
4,类具有简洁清晰的对外接口。