了解面向对象开发

首先我们理解一下面向对象和面向过程

面向过程:面向过程的思想是把一个项目或者一件事情按照顺序一步一步完成,更加关注过程分步执行。

面向对象Object Oriented Programming:面向对象的思想把一个项目或者一件事情,分成更小的项目或者更小的部分,每一个部分负责什么功能,然后在把这些部分组成一个整体。

面向对象的特点:

 1.抽象:关注核心,关注重点。

 2.封装:和函数特点吻合(常用的重复的代码进行封装,避免代码冗余)

 3.继承:子类可以继承父类,不能影响父类。

 4.多态:js使用比较少,对象具有多种不同的形态

面向对象的适用场景--优点

  面向对象适合复杂的场景。避免全局污染(全局变量全局函数),更方便的扩展程序。更清楚,更熟悉系统提供的一些默认类和对象的实现-系统提供的类(构造函数)全部采用面向对象实现。

1.什么是类?

(构造函数):一类事物,抽象,不占据内存。例如:人类     

程序中的类(构造函数)Function/Array/Object/Math/Date/RegExp...

2.什么是对象?

对象:一切皆对象,对象是属性的无序集合,类下面具体的事物,占据内存的。 例如:某一个具体的人张三

   实例化对象:new (构造函数)--产生实例对象

3.属性和方法

   对象:属性的无序集合,通过属性值将对象分成属性和方法。--对象 = 属性 + 方法

   属性:描述对象的外观,属性一般情况下都不会相同。例如:张三的身高体重年龄

   方法:描述对象具有的功能,方法一般情况下都是相同的。例如:张三能说话,能行走

4.属性和方法与变量和函数的区别

   当一个变量不自由了,理解成属性。

   当一个函数不自由了,理解成方法。

 5.函数属于对象,同时也是对象的构造器(对象是由函数构建出来的)

 

推导面向对象

一.目标

1.以系统的类(构造函数)为基准,通过类似的方式解决项目中的问题或者案例。

2.为了实现上面的目标,我们不论案例功能是否复杂都要尽量采用面向对象的写法。更好的和后端进行交互。

3.学会利用面向对象技术解决一切问题。

二.对象的创建方式(通过构造函数、字面量创建)

 

问题1:通过这样创建多个对象会出现大量重复代码

解决方案:此时我们可以用工厂模式也就是封装解决

 

问题2:工厂模式有弊端,帮我们解决创建多个对象代码冗余的问题,无法解决对象识别问题,所有的对象依然由object创建的。不像Array,Date......

解决方案:参考系统类(构造函数),调用的时候前面添加new.

结论:一旦通过new调用函数,当前的函数就不是普通函数,变成了构造函数了(符合构造函数的特点)

构造函数的两个特点:首字母大写,new调用。

 

问题3构造函数可以解决对象的识别问题,但是构造函数里面的属性和方法是私有的,特别是方法,每次使用都要重新创建,不同于我们的系统对象。

解决方案:将方法绑定在prototype原型上

 

总结:面向对象写法--混合方式进行开发(构造函数+原型)

猜你喜欢

转载自www.cnblogs.com/tangyi1914/p/12398766.html