本章用来讲述设计模式中的另一个原则——组合优于继承原则,又称为合成复用原则。

一、基本介绍

该原则是尽量使用合成/聚合的方式,而不是使用继承。

上面一句话就是对该原则的核心,但单单看这么一句话还是显得过于枯燥与不知所云,下面我们还是结合具体的场景进行代码推进,对该原则进行讲解。

二、场景

假设我们需要设计这样一个集合,每次向里面加入元素时,count都加一。例如:

最初集合是空集合,此时我们向里面加入"a",此时集合为{"a"},那么此时count = 1;当加入"b","c"两个元素时,集合为{"a","b","c"},此时count=3;此时再删除"a","c"两个元素,集合为{"b"},count仍然等于3;最后再加入"d",集合为{"b","d"}count=4

所以该场景是,不论中间是否删除元素,我们只统计加入到集合中的元素的次数,进行返回。