不推荐使用继承
继承虽然解决代码复用等诸多作用,但继承层次过深、继承关系过于复杂会影响到代码的可读性和可维护性。
组合的优势
继承主要有三个作用:表示 is-a 关系,支持多态特性,代码复用。is-a 关系,我们可以通过组合和接口的 has-a 关系来替代;多态特性我们可以利用接口来实现;代码复用我们可以通过组合和委托来实现。所以在项目中不用或者少用继承关系,特别是一些复杂的继承关系。
如何判断该用组合还是继承?
如果类之间的继承结构稳定,继承层次比较浅,继承关系不复杂,使用继承。反之,系统越不稳定,继承层次很深,继承关系复杂,尽量使用组合来替代继承。
此文章为 8 月Day10学习笔记,内容来源于 极客时间《设计模式之美》。