最大的问题是没有发现问题之一:谈谈滥用继承
来源:互联网 发布:mac spss破解版 编辑:程序博客网 时间:2024/06/14 00:06
有这样一个用例。
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 希望我们尽量的少用继承,但是少用不代表着不用,那么如何做才能更好呢?
- 最大的问题是没有发现问题之一:谈谈滥用继承
- 不一样的面试(发现自己最大的问题之一)
- 发现的问题, 没有解决
- 之前没有发现的问题
- 微软还是没有发现自己的问题!
- 信息安全问题是互联网的首要问题.
- 焦虑和年龄的问题是问题吗
- 不要滥用继承
- 产品经理面试:哪些问题是你没有准备的?
- 汉奸最多的国家:中国最大的问题是不团结
- 简单谈谈为啥$this->registerJs没有注册js的问题
- 谈谈c++中的继承问题
- C++虚继承(十) --- 谈谈陈皓遗留的问题
- 你为什么没有发现问题?!
- 发现了DeferWindowPos的一个问题,MSDN没有说明
- 对于c++我原来没有发现过的问题!!!
- java单例类继承问题--使用登记式单例的发现
- ORACLE优化方案 (转)(突然发现好多问题是版本问题,请看下一条)
- 设计模式六大原则之接口隔离原则
- git 备忘录
- Auto-Dependency Generation 2
- iperf测试网络性能
- N
- 最大的问题是没有发现问题之一:谈谈滥用继承
- Android 多线程之可以重复启动与停止的服务
- vue.js笔记
- 将博客搬至CSDN
- HDU 4927 Series 1(大数+杨辉三角)
- 基于高德地图的地理编码
- 创建并运行maven项目
- [置顶] Android之基础建设之IWindow和IWindowSession
- [置顶] Android输入输出系统之TouchEvent流程