设计模式中继承和组合的总结与体会,设计模式举例说明
终极管理员 知识笔记 34阅读
一、什么是继承
优点 组合模式表明的是has-a的关系表明自身这个类包含其他类的关系。继承的特性可以通过组合、接口、委托三个技术手段来达成。除此之外利用组合还能解决层次过深、过复杂的继承关系影响代码可维护性的问题。组合的层级关系更少类间的耦合性更低便于代码维护和阅读。 缺点 将继承改为组合意味着需要进行更细粒度的拆分势必会产生更多的类和接口类的数量增加会增加代码维护成本。 三、总结 面向对象程序的设计原则是组合优于继承多用组合少用继承。但在实际的开发过程中需要根据具体情况来选择继承还是组合当类间的关系层次较浅不多于3层类间的联系也比较稳定建议采用继承的模式否则采用组合的模式更好。
继承就是子类继承父类的特征和行为使得子类具有和父类一样的属性和方法在Java中通过extends关键字来实现继承。
优点 继承最大的好处是可以代码复用。针对多个类有相同的属性和方法可以将这些相同代码抽取出来形成统一父类后续只需要继承该父类就能使用这些属性和方法可以避免代码冗余实现代码复用。继承能实现多态特性。继承父类的方法子类可以根据自己的需求重写父类方法这是Java的多态带来的便利。继承模式表明的是is-a关系表明子类是父类的一种类型可以用来约束父类和子类的关系。 缺点 类间的层次变深会影响代码的可读性和可维护性。当类间的层次达到3层或3层以上时需要确定自身类的属性和方法就会比较麻烦。子类会继承了父类的所有属性和方法即使没有使用也会继承容易造成自身属性的膨胀。 二、什么是组合组合是对现有对象进行拼装组合实现更复杂的功能在Java中通过引用其他的类做自身的属性实现类间的组合。

标签: