三、多用组合,少用继承
面向对象之路,承诺了“复用”。借由继承,好东西可以一再被利用,所以程序开发时间就会大幅减少。
但我们总是需要花很多时间在系统的维护和变化上,因此软件开发完成“后”比完成“前”需要花更多的时间。
而“继承”只能帮助减少完成“前”的时间,因此我们要借助“组合”,致力于提高可维护性和可扩展性上的复用程度。
在上面“封装变化”里也提到过,继承有局限性,它能处理“实现方式”和“类”的关系是一(一种算法实现)对一(一个实现该方法的类)的情境。
但面对一对多时,就力不从心了,会造成很多重复的代码。此时就个要多用组合。而组合,同样能使用一对一的情况(也许会显得小题大作)。
评论
发表评论