今天学到了设计模式中的继承与组合,写以下内容增强自己记忆
举例bird
不同的bird有不同的属性及行为,单靠继承很难满足往后的扩展需求
例如:有redbird、whitebird和modelbird三种鸟,三种都有外观display的属性,但前两种鸟的fly行为则与第三种不一致,而且前两种鸟的叫声tweet也不同
如果直接写一个bird接口类包含display、fly、tweet方法,让三种鸟去继承,则一修改就要所有实现类都需要修改,因此可通过分离display、fly、tweet方法
减少往后修改fly行为导致其他实现类的影响,类关系图如下: