继承
来源:互联网 发布:adobe软件破解方法 编辑:程序博客网 时间:2024/05/22 05:18
继承
继承从代码复用的角度来说,特别好用,也特别容易被滥用和被错用。不恰当地使用继承导致的最大的一个缺陷特征就是高耦合。
例如:
object -> model
object -> view
object -> controller
这里是有非常明确的层次关系的,我在这里也顺便提一下使用继承的3大要点:
父类只是给子类提供服务,并不涉及子类的业务逻辑
object并不影响model view controller 执行逻辑和业务
object为子类提供基础服务例如内存计数
层级关系明显,功能划分清晰,父类和子类各做各的
object不参与MVC的管理中,那些都是各自派生类自己处理的事
父类的所有变化,都需要在子类中体现,也就是说此时耦合已经成为需求
object对类的描述,对内存引用的计数方式等,都是普通影响派生类
总结
可见,代码复用也是分类别的,如果当初只是出于代码复用的目的而不区分类别和场景,就采用继承是不恰当的。我们应当考虑以上3点要素看是否符合,才能决定是否使用继承。就目前大多数的开发任务来看,继承出现的场景不多,主要还是代码复用的场景比较多,然而通过组合去进行代码复用显得要比继承麻烦一些,因为组合要求你有更强的抽象能力,继承则比较符合直觉。然而从未来可能产生的需求变化和维护成本来看,使用组合其实是很值得的。另外,当你发现你的继承超过2层的时候,你就要好好考虑是否这个继承的方案了
,第三层继承正是滥用的开端。确定有必要之后,再进行更多层次的继承。
0 0
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- Android与JavaScript的相互调用
- 庖丁解牛-----Live555源码彻底解密(根据MediaServer讲解Rtsp的建立过程)
- WGS84 GCJ02和BD09坐标系相互转换代码
- 关于三星A7屏幕锁已由管理员、加密政策,或证书存储禁用
- 深入浅出Android Gradle构建系统(一:简介)
- 继承
- Chrome Developer Tools之Timeline面板
- 黑板课爬虫闯关第一关
- windows server 2008解决无法PING通问题
- Git action (Push Pull Clone) 避免输入用户名和密码方法
- linux下python配置环境变量的问题
- opencv在vs2013下的环境搭建
- 网络通信三要素:IP、端口、协议
- git使用之一——git的基本使用