面向对象的设计原则——先放好概念,等学完26种模式之后再回过头来写心得

1、依赖倒置原则(隔离变化区)
高层模块(稳定)不应该依赖于底层模块(变化),两者都应该依赖于抽象(稳定)。
抽象(稳定)不应该依赖于实现细节(变化),而细节应该依赖于抽象(稳定)。

大致分析一下,其实就是设计模式主要要隔离变化区,也就是把稳定的和变化的分开。
那么什么是变化的呢?(这个要拿出时间轴,分析未来这个会有什么变化,有什么需求的增加减少,这个角度来考虑是变化还是稳定的)。
学习设计模式一定要下意识的去区分稳定与变化的。在这里插入图片描述

2、开放封闭原则
不要想着到处去修改,而是想着去添加一些东西来扩展应对一些变化。
意思差不多就是不要去主框架 稳定的部分去修改,尽量使用抽象类,派生出类来进行扩展那种来适应变化。

3、类的责任(单一原则)
就是一个类的作用最好是单一的一个目的的,不要把一个类里面塞很多方法,单一原则。可以使用c++的多继承(其实是继承一个基类,其余都是抽象类接口)从而也可以保证单一原则,也可以完成对应任务。

4、替换原则
子类必须能够替换他们的基类。

5、优先使用对象组合而不是类的继承。(这一点在后面很多模式中都有涉及,都是采用对象组合,反而继承不是很好)。因为子父类耦合度搞,破坏封装。

6、封装变化点(隔离分界层,一侧变化 一侧稳定)。这也就是之前总是说,涉及模式一定要下意识区分好,稳定的变化的,并且可以进行隔离。差不多整个面向对象的设计模式都是在完成这个目的。进行隔离,保证稳定主框架代码的稳定性,代码的复用性。

7、针对接口编程 ,而不是实类(这一点在后面工厂模式中会有对应的讲解)多态结合工厂完美的完成了主框架的稳定其都依赖于接口编程,无实类影响。

静态 ————》 动态
早绑定 ————》 晚绑定
编译时依赖 ————》 运行时依赖
紧耦合 ————》 松耦合
继承 ————》 组合
其实上面4点基本都是说的多态那些。最后一点主要强调如果不是继承关系千万不要使用继承,有时候使用组合效果更好。

猜你喜欢

转载自blog.csdn.net/zw1996/article/details/96734590