重构——59构造函数本体上移(Pull Up Constructor Body)

简介: 构造函数本体上移(Pull Up Constructor Body):你在各个子类中拥有一些构造方法,它们的本体几乎完全一致;在超类中新建一个构造函数,并在子类构造函数中调用它
+关注继续查看

构造函数本体上移(Pull Up Constructor Body)

你在各个子类中拥有一些构造方法,它们的本体几乎完全一致;在超类中新建一个构造函数,并在子类构造函数中调用它

一、动机

子类无法继承超类的构造函数

二、做法

1、在超类中定义一个构造函数。将子类构造函数中的共同代码搬移到超类构造函数中

2、将子类构造函数中的共同代码删掉,改而调用新建的超类构造函数

3、编译,测试

目录
相关文章
|
2月前
|
搜索推荐 前端开发 JavaScript
title与h1的区别?position的值有哪些?如何理解原型?
1. title:可定义文档的标题,概括了网站信息,可以告诉搜索引擎或者用户这个网站的内容主题是什么。 2. h1:写在文章正文的标题部分,是展示给用户看的,更突出其视觉效果。
|
3月前
|
Java 编译器
深入探索: 对象构造的隐藏功能与技巧
深入探索: 对象构造的隐藏功能与技巧
40 0
|
4月前
|
JavaScript 前端开发
|
JavaScript 前端开发
学习javaScript必知必会(7)~Object类、修改this指向、继承关系
学习javaScript必知必会(7)~Object类、修改this指向、继承关系
90 0
学习javaScript必知必会(7)~Object类、修改this指向、继承关系
|
JavaScript 前端开发
一篇文章理解JS继承——原型链/构造函数/组合/原型式/寄生式/寄生组合/Class extends
说实在话,以前我只需要知道“寄生组合继承”是最好的,有个祖传代码模版用就行。最近因为一些事情,几个星期以来一直心心念念想整理出来。本文以《JavaScript高级程序设计》上的内容为骨架,补充了ES6 Class的相关内容,从我认为更容易理解的角度将继承这件事叙述出来,希望大家能有所收获。
1328 0
重构——68以继承取代委托(Replace Delegation with Inheritance)
以继承取代委托(Replace Delegation with Inheritance):你在两个类之间使用委托关系,并经常为整个接口编写许多极简单的委托关系;让委托类继承受托类
1091 0
重构——67以委托取代继承(Replace Inheritance with Delegation)
以委托取代继承(Replace Inheritance with Delegation) 1、某个子类只使用了超类接口中的一部分,或是根本不需要继承而来的数据 2、在子类中新建一个字段用以保存超类;调整子类函数,令它改而委托超类;然后去掉两者之间的继承关系
1891 0
重构——66塑造模板函数(Form Template Method)
塑造模板函数(Form Template Method) 1、你有一些子类,其中相应的某些函数以相同顺序执行类似的操作,但各个操作的细节上有所不同 2、将这些不同的操作细节分别放进独立函数中,并保持它们都有相同的签名,于是原函数也就变得相同了。然后将原函数上移至超类
1120 0
重构——58函数上移(Pull Up Method)
函数上移(Pull Up Method):有些函数,在各个子类中产生完全相同的结果;将该函数移至超类
1753 0
重构——53以工厂函数取代构造函数(Replace Constructor with Factory Method)
以工厂函数取代构造函数(Replace Constructor with Factory Method):你希望在创建对象时不仅仅是做简单的构造动作;将构造函数替换为工厂函数
1474 0
推荐文章
更多