码迷,mamicode.com
首页 > 其他好文 > 详细

关于组合 继承

时间:2019-11-30 09:51:30      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:http   一个   tps   list   https   泛型编程   代码   技术   泛型   

关于组合 继承

在c++中,应该何时用继承,何时用包含?

技术图片

Homunculus

说什么is-a has-a都是扯淡的。鸭子是一种嘎嘎叫的鸟,是一种吃肉的鸟,鸽子是咕咕叫的鸟,是吃谷子的鸟,都是is-a,用继承的都是脑袋有泡。软件工程有个跟科学与数学相悖的经验:抽象程度越高,能应对的变化越少。面向对象对上面所说的复杂的情况就不适用了,泛型编程绝大多数都用作基本容器,有些人用C++模板写的自以为通用的程序,到头来只兼容自己的需求,甚至自己加东西的时候还要改模板。许多程序员都是自以为是、一厢情愿的认为会有不同需求、自己的抽象能应对不同需求,谬也。减少抽象,不要多想,有啥功能就写啥,该if就if,该函数就函数,是码农减少工作量的重要手段。回到问题。我举的例子是说明is-a/has-a并不能良好的区分继承与组合(就是题目中的包含),然后说明了继承应对复杂变化有些吃力。那么到底什么时候用继承什么时候用组合呢?不知道,具体情况具体分析。继承实现起来比较简单,如果当前情况可以用的话就先用着,将来复杂了再把某个函数抽出来当一个类来包含。用继承与组合的时候不要过多考虑类和对象的关系,仅仅从少写代码的角度入手,许多东西就豁然开朗。

ref

https://www.zhihu.com/search?type=content&q=%E7%BB%84%E5%90%88%20%E7%BB%A7%E6%89%BF
https://www.zhihu.com/topic/19569910/hot

关于组合 继承

标签:http   一个   tps   list   https   泛型编程   代码   技术   泛型   

原文地址:https://www.cnblogs.com/cutepig/p/11961138.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!