单一职责原则、开放-封闭原则和依赖倒转原则

单一职责原则:编程

  就一个类而言,应该仅有一个引发他变化的缘由。spa

  目的是为了尽量的解耦。接口

例子:产品

  若是是一个鸟类,应该只有鸟的变化是改变这个类的缘由,天气和猪的变化不该该是改变这个类的缘由;扩展

  若是是一个鸟的脚类,应该只有鸟的脚的变化是改变这个类的缘由,鸟的嘴和猪的变化不该该是改变这个类的缘由;程序

 

开放-封闭原则:客户端

  对扩展开放,对修改封闭。co

  目的是为了程序能尽量无限扩展,而不是仅仅改变。background

  然而对程序中的每一个部分都刻意抽象是更糟糕的想法,请记住,拒毫不成熟的抽象和抽象自己同样重要。工厂模式

例子:

  当初老子只生产苹果:客户端-苹果类

  后来二笔产品要老子同时生产草莓,老子当即抽象这个变化:客户端-水果类  苹果子类 草莓子类,并机制的使用工厂模式封装子类产品。

 

依赖倒转原则:

  模块之间不该该互相依赖,它们都应该依赖抽象;抽象不该该依赖细节,细节应该依赖抽象。

  即针对接口编程,具体一点就是接口类或抽象类。程序中的依赖关系都应该终止于抽象类或者接口。

里氏代换原则:

  子类必须能替换掉它们的父类。程序中用子类代替父类,程序的行为应该是没有变化的。

  这要求子类具有父类的全部行为和特征。

例子:

  想一想策略模式,客户端只依赖context接口和策略抽象类,具体策略实现和客户端不要紧;具体策略类只依赖并实现策略抽象类,具体客户端怎么使用也和具体策略类不要紧。

相关文章
相关标签/搜索