单一职责原则
单一职责原则的英文名称是Single Responsibility Principle,缩写是SRP。SRP定义是:就一个类而言,应该仅有一个引起它变化的原因。简单来说就是,一个类中应该是一组相关性很高的函数、数据的封装,两个不相关的功能不应该放在一个类中,需要根据具体的业务、功能对类进行相应的拆分。
比如写一个ImageLoader,把所有的东西都写在一个类中,那么这样耦合就非常的严重,随着功能的增加,这个类就会越来越大,代码也越来越复杂,我们需要做的应该是把各个功能分别独立出来,比如说对于下载、缓存都写在其他的类中来实现,符合单一原则。
开闭原则
Open Close Principle,缩写是OCP,软件中的对象应该对于扩展是开放的,但是对于修改是封闭的。也就是在软件需求变化时,应该尽量通过扩展的方式升级、维护,而不是修改原有的代码来实现。
里氏替换原则
里氏替换原则的缩写是LSP,定义是说,所有引用基类的地方必须能够透明地使用其子类对象。这个原则是基于继承、多态这两大特性的。通俗的讲就是父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或者异常,使用者根本就不需要知道是父类还是子类。
依赖倒置原则
依赖倒置原则缩写是DIP,它指代了一种特定的解耦形式。它有以下几个关键点:
- 高层次模块不应该依赖低层次模块,两者应该依赖抽象。
- 抽象不应该依赖细节。
- 细节应该依赖抽象。
抽象就是指抽象类或者接口,细节也就是实现类,高层模块是调用端,低层模块就是具体实现类。模块间的依赖是通过抽象产生,实现类之间不发生直接的依赖关系。
接口隔离原则
接口隔离原则的缩写是ISP,定义是说,客户端不应该依赖它不需要的接口,也就是说类间的依赖关系应该建立在最小的接口上,让客户只需知道他们感兴趣的方法。
迪米特原则
迪米特原则的缩写是LOD,也叫最少知识原则,一个对象应该对其他对象有最少的了解,通俗的讲就一个类应该对自己需要耦合或者调用的类知道得最少。调用者只需要知道他所需要的方法即可,其他的不管。