414 字
2 分钟
封装

封装#

封装的目的是将信息隐藏。一般而言,我们讨论的封装是封装数据和封装实现。这一节将讨 论更广义的封装,不仅包括封装数据和封装实现,还包括封装类型和封装变化。

1. 封装数据#

在许多语言的对象系统中,封装数据是由语法解析来实现的,这些语言也许提供了 private 、 public 、 protected 等关键字来提供不同的访问权限。

但 JavaScript并没有提供对这些关键字的支持,我们只能依赖变量的作用域来实现封装特性, 而且只能模拟出 public 和 private 这两种封装性。

var myObject = (function () {
var _name = 'sven';
return {
getName: function () {
return _name;
}
}
})()
console.log(myObject.getName());

2. 封装实现#

封装的目的是将信息隐藏,封装应该被视为“任何形式的封装”,也就是说,封装不仅仅是 隐藏数据,还包括隐藏实现细节、设计细节以及隐藏对象的类型等

从封装实现细节来讲,封装使得对象内部的变化对其他对象而言是透明的,也就是不可见的。 对象对它自己的行为负责。其他对象或者用户都不关心它的内部实现。封装使得对象之间的耦合松散,对象之间只通过暴露的 API接口来通信。当我们修改一个对象时,可以随意地修改它的 内部实现,只要对外的接口没有变化,就不会影响到程序的其他功能。

封装
https://nollieleo.github.io/posts/封装/
作者
翁先森
发布于
2020-03-16
许可协议
CC BY-NC-SA 4.0