假如有这样一个需求,需要我们做一个玩具狗管理系统:
玩具狗有名字,有颜色….属性,橡皮狗会游泳,电子狗会汪汪
此时脑子里浮现的画面是(先写一个基类,基类中是所有狗属性),然后让电狗继承基类,橡皮狗也继承基类…..某些狗有自己特有的属性,而某些狗不具有这些属性,这样以来就显的我们的基类很累赘
设计思路:找出应用可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起,取出来写成一个接口,所有具备属性的狗狗都可以实现这个接口
设计原则:针对接口编程,而不是针对实现编程,多用组合,少用继承
1. 玩具狗基类(所有狗都继承它)
|
|
2. 普通狗登场
|
|
3. 电子狗具备不同于普通狗(它会汪汪)
|
|
4. 电子狗登场
|
|
5. 测试
|
|
6. 结果输出
|
|