任何一个设计模式都离不开七大原则中的任一原则.所以七大原则非常重要,只要我们明白了七大原则,就可以知道如何在项目中使用什么设计原则了.
设计模式的七大原则如下所示:
1.单一职责原则
每个类都做独立的事情,如果类的功能太多,可能引起它变化的原因就越多,这将导致功能依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。
比如视频的解封装和解码,如果放在一个类,那么以后想改变策略,本地不解码,只是转发解封装后的数据到另个地方,那么将会导致冗余,以前写的代码到底该不该删除?所以最好分开实现!
2.依赖倒置原则
比如我们之前用多态实现的画板程序:
其实我们这里的mouseUp()里实现的不是很好,因为有操作具体的底层模块.
我们应该提供一个工厂类给mouseUp()使用,通过工厂类来创建用户要画的什么图形.从而让我们的高层模块(PainterWindow)实现稳定效果,以后增改需求,就不需要改这个类了。
3.开放-封闭原则
比如我们之前用多态实现的画板程序,当我们添加一个椭圆类时,只需要新增椭圆类文件,然后在工厂类中添加一个生成椭圆类的代码即可(扩展是开放的,并且无需更改原有的代码).
4.里氏替换原则(LSP)
父类出现的方法,子类应该也要出现,通过调用父类的方法来实现虚函数调用子类.从而实现替换(不同子类实现的效果不同,但是调用父类的代码是相同的).
5.接口隔离原则
使用多个专门的接口,而不使用单一的总接口,即类不应该依赖那些它不需要的接口。比如后期该接口发生了变化,那么这个类也要去进行修改,增大修改的成本
6.迪米特原则(最少知道原则)
7.合成复用原则
继承的原则是用来子类替换基类,如果一味地使用类继承,那么之类的子类会继承出很多不需要的属性,在后面的设计模式中会举例出来.