面向对象编程(OOP)的六大原则

面向对象编程是一种很重要的编程思想,相应的,也有它自己的原则,接下来我将为大家简单的介绍一下面向对象编程的六大原则。

一、单一职责原则——SRP(Single-Responsibility Principle)

单一职责,字面意思就是一个类应该只有一个职责。也就是说一个类应该只负责一件事情,它的方法应该只有一个。假如一个类里面有两个方法:方法1和方法2,当我们对方法1做修改时就有可能导致方法2发生错误,这样就增加了修改的难度。所以单一职责原则有如下好处:

1、使程序更有条理,一个类中只有一个方法,让其他人一目了然。

2、降低维护难度,当修改此类方法时不影响其他类的使用。

虽然单一职责原则可以使程序更有条理,但如果有些方法只能写在一个类中,不能分开,就不要强行符合单一职责原则了。

二、开闭原则——OCP(Open-Closed Principle)

开闭原则简单概括就是对于扩展是开放的,对修改是封闭的。当我们发现一个类中的方法不能满足当前的需求是,我们可能会想着在此类中再增加一个方法来实现,但这种方法可能会给我们带来很多麻烦。这时,我们应该再创建一个类继承该类,在新创建的类中实现新的方法。这样能使我们对程序的修改降到最小,当出现错误时也比较容易修改。开闭原则有如下优点:

1、按照OCP原则设计出来的系统,降低了程序各部分之间的依赖,使程序各个模块更加独立。

2、当程序需要增加新的功能时,不需要对原程序进行修改,只需要在原有基础上附加新的模块就能实现所需要添加的功能。增加的新模块对原有的模块基本没有影响,这样就不用对原有模块进行测试,即使出现错误也是新建模块的错误,便于修改。

三、里氏替换原则——LSP(Liskov Substitution Principle)

里氏替换原则一个简单的说法就是所有引用基类的地方必须能够透明地使用其子类的对象,举个例子:如果对每一个类class1的对象o1,都有类class2的对象o2,使得以class1定义的所有程序P在所有对象o1都替换成o2的时候,程序P的行为都没有发生变化,那么类型T2是类型T1的子类型。

里氏替换原则说明了子类与父类之间应该满足的关系,子类可以去扩展父类的功能,增加方法,但是不能改变父类原有的功能。

四、依赖倒置原则——DIP(Dependence Inversion Principle)

依赖倒置原则简单的说就是高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。Java中的抽象一般指接口或者抽象类,二者都不能实例化,细节就是指实现抽象的类,可以实例化。

在编程过程中尽量面向接口编程,也就是说在写一个类前先写一个接口,然后用一个类来实现这个接口,通过面向接口编程,我们的程序就有了很高的扩展性,降低了类与类之间的依赖性,使实现类更依赖于接口,而不是其他实现类,提高了系统的稳定性。

五、接口隔离原则——ISP(Interface Segregation Principle)

接口隔离原则指程序不应该依赖于它不需要的接口。简单来说就是接口应该尽量细分,使每一个类都没有它不需要实现的方法。

六、迪米特原则——(Law of Demeter)

迪米特原则的定义是一个对象应该对其他对象保持最小的了解。当我们在编写一个类时,这个类的属性能私有化就私有化,尽量不与其他类产生联系。一个对象应该对其他对象保持最少的了解,简单的理解就是高内聚,低耦合。

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