设计模式的八大原则

在程序开发的过程中前辈程序员不断总结发现一些程序的设计是固定的方案,因此就产生了设计模式,设计模式的出现就是为了实现代码的复用,这也是评判一个软件设计好坏的标准。

在建筑领域我们不会建好了一百层楼还要求在加上一个地下室,这是不可能实现的,除非你把大楼拆掉重建。但是在软件领域却是经常变化的,需求总是在不断变化,今天让你增加一个地下室,明天让你加个瞭望台,后天让你给大楼重新贴瓷砖。因此选择一个合适的设计就非常有必要。

所有的设计模式均遵循八大设计原则,很多设计原则是从不同角度看待同一个问题,因此违背了其中一个原则就可能违背了其他原则。

1.依赖倒置原则

高层模块(稳定)不能依赖于低层(变化)模块,二者都应该依赖抽象(稳定),抽象(稳定)不应该依赖实现细节(变化),实现细节应该依赖抽象。

一个稳定的东西依赖一个不稳定的东西就会导致自己也不稳定。

2.开闭原则

对扩展开放,对修改关闭。

3.单一职责原则

一个类应该只有一个引起它变化的原因,变化的方向隐含着类的责任。

4.liskov替换原则

子类能够替换它的基类(is-a)

5.接口隔离原则

不应该依赖客户程序依赖它们不用的方法,接口应该小而完备。要采用正确的访问修饰符修饰方法,不能都采用public修饰,将它们都暴露出去,强迫客户程序实现。

6.优先使用组合,而不是继承

继承在某种程度上破坏了封装,子类父类具有较高的耦合,采用组合只需要组合对象具有良好定义的接口,耦合度低。

7.封装变化点

通过封装创建对象之间的分层,让设计者在分界层的一侧修改不会影响到另一侧,从而实现层次间的松耦合

8.面向接口编程,而不是面向实现编程

不将变量类型声明为某个特定的具体类,而是声明为某个接口客户程序无需获知对象的具体类型,只需要知道对象所具有的接口

减少系统中各部分的依赖关系,从而实现“高内聚,松耦合”的类型设计方案。

猜你喜欢

转载自blog.csdn.net/anewmonkey/article/details/82563685