博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
继承与组合的区别,使用场景
阅读量:4260 次
发布时间:2019-05-26

本文共 252 字,大约阅读时间需要 1 分钟。

考虑继承的时候,需要考虑的几个场景

1. 父类只是给子类提供服务,并不涉及子类的业务逻辑

2. 层级关系明显,功能划分清晰,父类和子类各做各的。

3. 父类的所有变化,都需要在子类中体现,也就是说此时耦合已经成为需求

三、如何使用继承

 

1、精心设计专门用于被继承的类,继承树的抽象层应该比较稳定,一般不要多于三层。

2、对于不是专门用于被继承的类,禁止其被继承。

3、优先考虑用组合关系来提高代码的可重用性。

4、子类是一种特殊的类型,而不只是父类的一个角色

5、子类扩展,而不是覆盖或者使父类的功能失效

转载地址:http://jyaei.baihongyu.com/

你可能感兴趣的文章
【GStreamer】gstreamer工具详解之:ges-launch-1.0
查看>>
【GStreamer】gstreamer工具详解之:gst-discoverer-1.0
查看>>
【Ubuntu】安装中文输入法
查看>>
【Cmake】执行cmake命令时报错:No XSLT processor found
查看>>
【数据库】sqlite中PRAGMA命令说明
查看>>
【Qt】Qt容器总结
查看>>
【C++】C++11 STL算法(一):非修改序列操作(Non-modifying sequence operations)
查看>>
【C++】C++11 STL算法(二):修改序列的操作(Modifying sequence operations)
查看>>
【C++】C++11 STL算法(三):分隔操作(Partitioning operations)、排序操作(Sorting operations)
查看>>
【C++】C++11 STL算法(四):二分查找法(Binary search operations)、合并操作
查看>>
【C++】C++11 STL算法(五):设置操作(Set operations)、堆操作(Heap operations)
查看>>
【C++】C++11 STL算法(六):最小/最大操作(Minimum/maximum operations)、比较运算(Comparison operations)
查看>>
【C++】C++11 STL算法(七):排列操作(Permutation operations)、数值操作(Numeric operations)
查看>>
【C++】C++11 STL算法(八):对未初始化内存的操作(Operations on uninitialized memory)、C库(C library)
查看>>
【数据库】sqlite中的限制:数据库大小、表数、列数、行数、参数个数、连接数等
查看>>
【数据库】SQLite和MySQL之间的对比和选择
查看>>
【数据库】sqlite3数据库备份、导出方法汇总
查看>>
【数据库】适用于SQLite的SQL语句(一)
查看>>
【数据库】适用于SQLite的SQL语句(二)
查看>>
【数据库】适用于SQLite的SQL语句(三)
查看>>