`
daojin
  • 浏览: 695209 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

最大的问题是没有发现问题之一:谈谈滥用继承

 
阅读更多

有这样一个用例。

People{

}

 

Man extends People{

}

 

Woman extends People{

}

 

WorkingMan extends Man {

}

 

WorkingWoman extends Woman{

}

 

问题来了,现在加入一个工程师和一个经理,需要写四个类

EngineerMan extends WorkingMan{

}

 

EngineerWoman extends WorkingWoman{

}

 

ManagerMan extends WorkingMan{

}

ManagerWoman extends WorkingWoman{

}

 

现在出现了机器人, 怎么扩展呢? ManagerRobot,

 EngineerRobot, Robot, ChefRobot?

 

 

现在出现了新的职业,工程师经理, 怎么写?

 

至少要写三个类

 

EngManager extends ManagerRobot

EngManager extends ManagerMan

EngManager extends ManagerWoman

 

更糟糕的是,我们没法重用 Engineer 这个职业描述的代码,所有的engineer 都要重写?

 

很多人觉得自己不会傻到这个地步,可实际上就是这么做的,当你每次使用 extends 这个标签的时候,不会发现有什么不妥的地方。要知道,上面例子中的类可能不是一个人写的。

实际中,也不可能是一个人完成,一旦让他一个人完成,他绝对会觉得很累,不会这样写。

 

android 里面类似的:

 

View 继承n个层次

Activity 继承n个层次

Fragment 继承n个层次

 

还有自定义的

Event 继承n个层次。

 

一旦继承的层次超过了三个, 代码就会难以理解和维护。thinking in java 希望我们尽量的少用继承,但是少用不代表着不用,那么如何做才能更好呢?

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    exceptional c++:47个c++工程难题、编程问题和解决方案(英文版)

    《exceptional c++:47个c++工程难题、编程问题和解决方案(中文版)》讲述如何用标准c++进行企业级的软件开发,通过“问题/解答”的方式,启发读者思考,帮助了解隐藏在问题背后的设计思想,以及各种编程指导原则适用...

    滥用抗生素的危害及防治措施.doc

    5. 使用监测与报告:建立抗生素使用监测系统,定期公布数据,以便及时发现滥用问题并采取措施。 6. 畜牧业规范用药:限制和监控畜牧业中的抗生素使用,减少食品中抗生素残留,防止耐药性通过食物链传播。 7. 临床...

    论述中国抗生素的滥用问题.doc

    【抗生素的滥用问题】 抗生素,自20世纪40年代青霉素的发现以来,极大地改变了医学领域,使得曾经致命的感染性疾病得以治愈。然而,随着抗生素的广泛应用和滥用,问题日益严重,导致了细菌耐药性的急剧上升。40年间...

    javascript继承之为什么要继承.docx

    继承是面向对象编程的基本机制之一,它可以实现代码复用、提高编程效率和增强代码的可维护性。 在 JavaScript 中,继承是通过 prototypeChain 来实现的。当我们创建一个对象时,它会自动继承其 prototype 中的所有...

    敏捷开发的必要技巧5:慎用继承

    然而,滥用或不恰当使用继承可能会引发一系列问题: 1. **灵活性降低**:过度依赖继承会限制代码的灵活性,因为子类的行为很大程度上受到父类的约束。当需求变更时,可能需要修改大量子类,这在敏捷开发中是不被...

    互联网金融征信滥用的法律规制问题研究.pdf

    互联网金融征信滥用的法律规制问题研究 一、征信与互联网金融的关系 征信是互联网金融发展的基础,它通过采集个人和企业在互联网使用过程中留下的信用信息,运用大数据、云计算等技术手段,对这些信息进行整合、...

    普遍管辖权滥用认定标准探讨

    普遍管辖权是近年国际法热点问题,其适用引发滥用争议。为解决问题、达成共识,根据现有国际法规范,结合法理与实践,提出判断权力滥用的两个标准:普遍管辖权的行使是否具有法律依据,是否尊重他国主权豁免。适用普遍管辖...

    抗生素滥用问题的思考开题报告.pdf

    抗生素滥用问题的思考开题报告.pdf

    权力之治:人工智能时代的算法规制.pptx

    《权力之治:人工智能时代的算法规制》是探讨在人工智能快速发展的背景下,如何通过法律和政策来规制算法权力的一本重要著作。作者通过全面分析,揭示了AI对法律体系的深刻影响,以及如何构建适应新时代的治理模式。...

    消失的微生物:滥用抗生素引发的健康危机

    消失的微生物:滥用抗生素引发的健康危机 Missing Microbes: How the Overuse of Antibiotics Is Fueling Our Modern Plagues 深入浅出的微生物科普读物。

    python中多重继承共6页.pdf.zip

    Python中的多重继承是一种面向对象编程特性,允许一个子类继承多个父类的属性和方法,从而实现代码的复用和模块化。在Python中,多重继承的语法非常直接,一个类声明可以包含多个父类,各父类之间用逗号分隔。例如:...

    抗生素滥用的危害参照.ppt

    中国是全球抗生素滥用最严重的国家之一,年人均消费量远超其他国家,医院抗生素使用率高达74%,而发达国家如美国仅为22%~25%。妇产科、儿科等领域抗生素滥用尤为突出,住院患者的抗生素使用率也达到70%。这种情况...

    各国玩具物理机械滥用测试标准

    不同国家和地区对于玩具的安全性有着各自的标准与规定,其中物理机械滥用测试是确保玩具安全性的关键环节之一。本文将基于一份个人制作的各国玩具物理机械滥用测试标准表,对其中的关键知识点进行详细解读,旨在为...

    论文研究 - 打击保险滥用:土耳其和英国的比较分析

    保险欺诈的一种类型是对保险索赔的被保险人进行自理。 然而,这听起来令人难以置信,这是一个事实,它越来越流行。 本研究旨在概述土耳其保险欺诈的类型,规模和影响,尤其是案例研究中保险索赔的自裁。 保险欺诈...

    加强知识产权战略管理和实施中的制度建设——关于知识产权滥用的法律规制制度

    规制知识产权滥用制度是促进技术转让、实现技术进步的重要措施,是当前我国知识产权领域的热点问题之一。文中首先十分扼要的梳理了知识产权滥用在英国、美国、欧盟及加拿大等国法律中的含义及其相应规制制度,可以发现...

    面向对象的三个基本特征是:封装、继承、多态。

    继承的滥用会导致设计问题,因此需要合理设计类的层次结构。 最后,多态性是面向对象编程中的又一重要特征,它允许使用父类类型的引用指向子类的对象,并且当运行时,根据对象的实际类型调用相应的方法。多态的实现...

    我国畜牧养殖业存在滥用抗生素问题危害食品安全.docx

    标题和描述中提到的核心问题是我国畜牧养殖业中存在的抗生素滥用现象,这一问题对食品安全构成了重大威胁。抗生素在畜牧养殖业中的不当使用可能导致动物性食品中抗生素残留,进一步影响人类健康,甚至催生具有抗药性...

    论人格继承和继承法的制度结构文档.doc

    【人格继承的含义】主要包括两方面:一是对某些具体人格权的继承,如死者的名誉、肖像、XX、荣誉等;二是对遗体的处理,如遗体的尊严和遗骨的保护。这些权利和利益在死者去世后,由特定的继承人来维护和管理。 ...

    ChatGPT技术的防范滥用和误导问题.docx

    然而,随着这项技术的广泛应用,也随之暴露出滥用和误导的问题,需要我们深入理解和采取措施来解决。 首先,ChatGPT的滥用问题主要体现在非法信息的传播和恶意攻击上。由于其生成的文本质量高,可能被不法分子用来...

Global site tag (gtag.js) - Google Analytics