第四章 混合对象”类“

4.混合对象”类“

面向类的设计模式:
实例化、继承、多态
本章将介绍面向对象编程理论

4.1 类理论

4.1.1 封装

面向对象编程强调数据和操作数据的行为是关联的
因此好的设计是把数据以及它相关的行为打包(封装),这在正式的计算机科学中有时被称为数据结构

4.1.2 继承

4.1.3 多态

父类的通用行为可以被子类用更特殊的行为重写。
不推荐使用:会降低代码的可读性和健壮

4.1.4 设计模式

迭代器模式,观察者模式,工厂模式,单例模式

4.1.5 js中的”类“

new instanceof
ES6:class
类是一种设计模式,可用一些方法实现累的功能

4.2 类的机制

在许多面向类的语言中,”标准库“会提供Stack类,它是一种”栈“的数据结构,内部会有一些变量来存储数据,同时提供一些公有的可访问行为(方法),从而让代码可以和(隐藏的)数据进行交互(添加,删除)
js语言中并不提供这些...

4.2.1 建造

类和实例的概念来源于房屋构造,抽象到具体

4.2.2 构造函数

构造函数:类实例由一个特殊的类方法构造,这个方法名和类名相同,被称为构造函数
new来调用

4.3 类的继承

4.3.1 多态

4.3.2 多重继承

js本身不提供多重继承功能

4.4 混入

来实现多重继承
js中只有对象,并不存在可以被实例化的类,一个对象并不会复制到其他对象,他们会被关联起来

4.4.1 显示混入

A.method.call(B)

4.4.2 隐式混入

通过在构造函数调用或方法调用中使用A.method.call(this)
 
“类”意味着复制
在js中,模拟类得不偿失,不推荐使用





posted @ 2017-03-02 09:18  夏目233  阅读(88)  评论(0编辑  收藏  举报