个人创作四十年作品记录

封装接口网址:

一、什么是封装?

封装是把彼此相关数据和操作包围起来,抽象成为一个对象,变量和函数就有了归属,想要访问对象的数据只能通过已定义的接口。说封装就是将属性私有化,太过狭隘,因为封装不仅仅实现了数据的保护,还把彼此相关联的变量和函数包围了起来。

二、为什么需要封装

1.我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段,从而可以让程式码更容易维护。

2.将相关联的变量和函数封装成一个对象, 变量描述对象的属性,函数描述对象的行为,这符合我们对客观世界的认识。

3.还实现了对属性的数据访问限制,也加强了程式码的安全性。

封装 (Encapsulation)的通俗说法:

制造汽车的过程中什么人最牛?当然不是焊钢板的,也不是装轮胎的,更不是拧螺丝的,而是设计汽车的工程师,因为他知道汽车的运行原理。但是我们开车时,需要知道汽车的运行原理吗?答案显然不需要。汽车的运行原理己经被伟大的工程师封装在汽车内部,提供给司机的只是一个简单的使用接口,司机操纵方向盘、刹车及备种按钮就可以灵活自如地开动汽车了。

与制造汽车相似,面向对象技术把事物的状态和行为的实现细节封装在类中,形成一个可以重复使用的“部件”。类一旦被设计好,就可以像工业部件一样,被成千上万的对其内部原理毫不知情的程序员使用。类的设计者相当于汽车工程师,类的使用者相当于司机。这样程序员就可以充分利用他人已经编写好的"部件",将主要精力集中在自己的专属领域。

对象是封装了数据和操作的程序块。所谓封装是为这个程序块建立显示的界面。其它对象只能向这个界面发消息,不能访问内部的私有数据和操作。比如我们要求某人"坐下" (发消息),某人接受消息后调整自己的肌肉、神经使自己坐下(操作) ,从而改变了他的状态(描述姿态的数据变了)。外界不必过问动用了哪几条神经,收缩了哪几块肌肉。

实际演示:

“config.js”中写入如下代码(图67-1)。

图67-1

打开调试器,如下(图67-2):

图67-2