java——封装的理解

封装


封装其实就是对复杂事物的一种简化。任何事物随着不断地发展,总是会越来越复杂,体量越来越大,效率越来越低,管理起来越来越困难。这时候就需要进行分类升级,也就是我们所说的抽象,将相同特征的一类事物进行抽象封装。抽象程度越高,封装就越彻底。

在计算机领域中,最开始是使用二进制的机器语言进行电脑的控制管理,一串010101的二进制码表示了对计算机的操作指令。十分的复杂且不方便记忆。俗话说,穷则思变,变则通。复杂就需要改变,然后出项了汇编语言,使用人类可以理解的指令来代替机器语言,一条汇编指定可能就表示好多条机器指令,所以这也是一种封装。这种改变可能在当时是一种伟大的改进,但是技术的发展是迅速的,随着操作系统功能的增强,那汇编指令也会越来越多。同样需要改变升级,然后高级编程语言出现了。以人类可以识别,可以理解的方式进行代码编写,指令下达,无疑这样是十分高效且方便的。

面向过程的编程语言,已经可以满足我们的开发需要,可以以人类可以理解的方式完成我们需要的任何功能。面向过程通常以功能来进行函数封装,完成一个功能需要分为几个步骤,然后我们的程序就是按照步骤一步一步地写。如果完成另外一个功能,两个功能的步骤一般是不一样的。即使我们对所有的步骤都进行了函数抽离,通常也不能很好的复用。如果项目较大的,那抽离的函数也遍布在各个文件中。

而面向对象的编程方式,将程序与现实生活相对应,一个类就对应了一类具有相同特点的事物,这种事物有着自己独有的数据存储和功能特征。比如用户购物,可以抽象封装为user类、goods类。user类包含了用户的基本信息:姓名、余额。然后用户具有购买商品的行为。商品也有基本信息:名称、价格。然后用户购物的这个过程可以转变为:声明一个用户类和商品类,然后触发用户的购买行为。将编程转变成了一种对象资源的调度。如果用户现在想退货,用户类和商品类可以继续复用,只需要增加一个退货行为即可。

与面向过程的步骤化编程相比,面向对象就像从一个乐队的演奏者变成了指挥者。演奏者需要关心每一个音符,而指挥者只需要知道你是钢琴手还是小提琴手。在项目设计的时候,就已经进行类设计,将整个项目涉及到的对象都抽象了出来。然后实施的过程中,只需要将对象实例化,并完成对象之间的调用关系即可。

封装的脚步并没有由此结束,我们对代码的封装形成了类,对成百上千的类的封装形成了框架或者中间件,对项目进行封装我们形成了分布式集群,将项目和所在环境结合起来形成了docker,如果考虑到对部署服务器的管理,然后形成了K8S……

封装并不是计算机领域特有的,而是整个社会都存在的一种思想。比如从社会发展方面,随着人数的增多,形成了村落。随着村落增加,划分了乡镇。然后到区县、省市、国家、星系等等。

封装并不是一种技术,而是一种思想。当一件事变得复杂,就需要从一个更高的层次来进行管理。

你可能感兴趣的:(总结,java,封装)