使用设计模式时,明显的特点是:
1.对接口编程,而不是对实现编程。
接口相当于一种中间件,软件实现中对接口编程可以屏蔽掉对象中其他不需要关心或不太重要的部分,专注于希望对象实现的功能的实现,使开发过程变得简单。另外,对接口编程还增加软件系统功能实现的灵活性,对于系统的升级维护有好处。
2.对类的功能的扩展,要多用组合,少用继承。
在UML中,组合简单的说,某台电脑和组成该电脑的CPU, 显示器,内存,硬盘等部件之间就是组合关系。
继承存在的问题:
a.子类在继承父类时,会将父类中所有的公有的(public)和受保护的(protected)成员继承下来,这样会出现子类继承了一些无用甚至有害的父类的方法。也就是说,采用继承机制来实现复用时,难以控制只继承父类中的某部分的方法。
b.会出现类的无限膨胀。用组合方式能解决多重继承问题。
c.继承的子类,实际上是静态确定对象的情况的,满足不了运行时才能确定对象的情况,而组合能解决该问题。组合更加灵活。