面向对象的六大原则

单一职责原则

单一职责原则的英文名称是Single Responsibility Principle,缩写是SRP。SPR定义是:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的函数,数据封装。比如说在封装一个图片加载库的时候,我们就应该把加载抽成一个类,让它只负责图片加载的逻辑;把缓存抽象成一个类,让它只负责图片缓存额逻辑。

开闭原则

开闭原则的英文全称是Open Close Principle,缩写是OCP,它是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的,灵活的系统。开闭原则的定义是:软件中的对象(类,模块,函数等)应该对于扩展是开放的,但是对于修改是封闭的。开闭原则指导我们,当软件需要变化时,应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。

里氏替换原则

里氏替换原则(Liskov Substitution Principle),缩写LSP。定义:所有引用基类的地方必须能透明的使用其子类对象。该原则依赖于面向对象的继承,多态两大特性,通俗的讲,只要父类出现过的地方子类就可以出现,而且替换的子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是反过来就不行了,有子类出现的地方,父类未必能适应,总结起来就两个字:抽象。
里氏替换原则的核心原理是抽象,抽象又依赖于继承,在OOP中,继承有许多优点:
(1)代码重用,减少创建类的成本,每个子类都拥有父类的方法和属性;
(2)子类与父类基本相似,但又与父类又区别;
(3)提高代码的扩展性。
可是继承又是侵入性的,只要继承就必须拥有父类的所有方法和属性;还可能造成子类代码冗余,灵活性降低等缺点。

依赖倒置原则

依赖倒置原则(Dependence Inversion Principle),缩写DIP。依赖倒置原则指代了一种特定的解耦形式,使得高层次的模块不依赖于低层次的模块实现细节的目的。该原则有如下几个关键点:
(1)高层模块不应该依赖低层模块,两者都应该依赖于其抽象;
(2)抽象不应该依赖细节
(3)细节应该依赖抽象
依赖倒置原则在Java语言中的表现就是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的,也就是告诉我们要面向接口编程或者说是面向抽象编程。

接口隔离原则

接口隔离原则(Interface Segregation Principle),缩写ISP。ISP的定义是:客户端不应该依赖它不需要的接口。另一种定义是:类之间的依赖关系应该建立在最小接口上。

迪米特原则

迪米特原则英文全称为Law of Demeter,缩写LOD,也称最少知识原则。也就是一个对象应该对其他对象有最少的了解,通俗讲,一个类应该对自己需要耦合或调用的类知道得最少,类的内部如何实现与调用者或者依赖着没有关系,调用者或依赖着只需要知道它需要的方法即可,其它可一概不管。

示例代码https://github.com/TouchHeart/ImageLoader

你可能感兴趣的:(面向对象的六大原则)