多用组合少用继承

102 阅读1分钟

不推荐使用继承

继承虽然解决代码复用等诸多作用,但继承层次过深、继承关系过于复杂会影响到代码的可读性和可维护性。

组合的优势

继承主要有三个作用:表示 is-a 关系,支持多态特性,代码复用。is-a 关系,我们可以通过组合和接口的 has-a 关系来替代;多态特性我们可以利用接口来实现;代码复用我们可以通过组合和委托来实现。所以在项目中不用或者少用继承关系,特别是一些复杂的继承关系。

如何判断该用组合还是继承?

如果类之间的继承结构稳定,继承层次比较浅,继承关系不复杂,使用继承。反之,系统越不稳定,继承层次很深,继承关系复杂,尽量使用组合来替代继承。

此文章为 8 月Day10学习笔记,内容来源于 极客时间《设计模式之美》