发表于: 2017-02-23 23:31:19

1 1163


小课堂分享:

JS中的面向对象编程 

背景介绍:

什么是面向对象编程? 面向对象编程是一种通用思想,主要概念为: 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)/泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派(dynamic dispatch)。 为什么要面向对象编程 面向对象是为了解决系统的可维护性,可扩展性,可重用性。 


知识剖析:

象的概念 “对象”是具有方法与属性的实物的抽象。 面向对象的特征详解 封装:找到变化并且把它封装起来 继承:子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,因此也解决了系统的重用性和扩展性,但是继承破坏了封装. 多态:接口的多种不同的实现方式即为多态。接口是对行为的抽象.方法不变,通过接收的参数变化,来实现多态。 如何封装一个对象 构造函数模式

构造函数模式存在的问题?如何改进? Prototype模式 把那些不变的属性和方法,直接定义在prototype对象上

常见问题:

 如何实现构造函数的继承

解决方案      采用"拷贝"方法实现继承。


编码实战:



扩展思考 

面向过程到面向对象思维如何转变? 当我们习惯了面向过程编程时,发现在程序过程中到处找不到需要面向对象的地方,最主要的原因,是思维没有转变。程序员通常在拿到一个需求的时候,第一个反应就是如何实现这个需求,这是典型的面向过程的思维过程,而且很快可能就实现了它。而面向对象,面对的却是客体,第一步不是考虑如何实现需求,而是进行需求分析,就是根据需求找到其中的客体,再找到这些客体之间的联系。因此面向过程和面向对象的思维转变的关键点,就是在第一步设计,拿到需求后,一定先不要考虑如何实现它,而是通过UML建模,然后按照UML模型去实现它。这种思路的转变,可能需要个过程。


参考文献 

参考一:赵学智  http://www.cnblogs.com/seesea125/archive/2012/04/03/2431176.html

参考二:阮一峰http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html

 8.更多讨论



返回列表 返回列表
评论

    分享到