序
在面向对象编程中,优秀的程序员通过简洁的示例代码来演示完美的继承模式。在javascript编程语言中,程序员可以实现面向对象的编程。而且继承方式有很多种,比如原型继承、构造函数继承、组合继承等。然而,这些继承模式存在许多缺陷,难以在实际项目中使用。随着编程语言的不断发展和完善,寄生组合继承诞生了,它非常完美,深受优秀程序员的喜爱。
面向对象 继承模式讨论今天的目标
通过简洁的代码实例,展示了面向对象编程中完美的继承模式:寄生组合继承模式。对寄生组合继承模式在继承中的机理有深入的了解,掌握这种继承模式的优缺点。
相关信息
Github是一个非常有影响力的代码托管平台,免费托管开源项目。这个平台上诞生了很多优秀的开源项目,也有很多独具特色的javascript开源项目,是很多优秀程序员学习代码的天堂。今年6月,被微软以78亿美元收购。据报道,谷歌和亚马逊都对收购github感兴趣。假设github代码托管平台被腾讯收购,github的发展前景会怎样?
腾讯若收购github实施要求:
javascript和面向对象程序设计中寄生组合继承的用例需求分析
父亲——中国人,有三个属性——姓名、国籍、肤色;1原型法:个人简介;子类-大学职员,继承父类的3个属性和1个方法;还有自己的属性,专业job,1法,newjob法:工作介绍。结果如图a所示..
图A如图A,属性:小丽,中文,黄色;方法:小李是中国人,黄皮肤。这些属性和方法是从父类继承的。同时,属性“教师”和“方法”被添加到子类中。工作是清华大学先生。父类属性由父类构造函数继承,方法由父类的原型副本继承。
代码实现过程
图B 父类如图B所示,在面向对象编程中,程序员使用构造函数定义父类,并添加三个属性和一个原型方法。
图C 子类如图C,定义子类,在子类的构造函数中调用父类的构造函数,这样子类就可以独立继承父类的属性。而原型方法可以共享继承。
图D 继承核心如图D,为了让子类获得父类的原型,又不想调用父类的构造函数,导致不必要的执行和不必要的属性生成,就得到图C所示的巧妙思路。这是寄生组合的核心思想和代码示例。本质在于将父类的原型副本赋给子类的原型。
图E 子类实例如图E,生成了teacher1和teacher2两个子类,实现了寄生组合遗传的全过程。两个实例的核心是生成独立的实例属性,虽然有些属性是从父类继承的,但是它们是相互独立的;共享同一个父类原型方法介绍。最终目标,属性独立,实现实例的个性化;实现资源优化的方法。
标签
在实际项目中,面向对象编程采用继承方式,寄生组合继承是一种理想的继承方式。既实现了属性的独立性,又实现了方法的共享,这在javascript语言中是完美的。但是由于语言的根本问题,接口继承无法实现。
讨论:假设github代码托管平台被腾讯而不是微软收购,github的发展前景如何?会发展的更好吗?