欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

面向对象六大基本原则

程序员文章站 2022-04-22 16:02:08
设计模式六大基本原则 1.单一职责原则 英文:Single Responsibility Principles,缩写SRP 定义:就一个类而言,应该仅有一个引起它变化的原因。 理解:例如两个完全不一样的功能就不应该放在一个类中。一个类总应该是一组相关性很高的函数,数据的封装。 对应一个类,不求功能面 ......
设计模式六大基本原则
 

1.单一职责原则

英文:Single Responsibility Principles,缩写SRP
 
定义:就一个类而言,应该仅有一个引起它变化的原因。
 
理解:例如两个完全不一样的功能就不应该放在一个类中。一个类总应该是一组相关性很高的函数,数据的封装。
对应一个类,不求功能面面俱到,只求能把一件事做好

2.开闭原则

英文:Open Close Principle,缩写OCP
 
定义:对于扩展是开放的,对于更改是封闭的。就是说软件实体(类、模块、函数等等)应该可以扩展,但是不能修改。
 
理解:在软件的生命周期中,因为变化,升级维护等原因需要对软件原有代码进行修改时,可能会将错误引入源码已经经过测试的没有错误的旧代码中,造成以前没有错误的代码错误。因此,当软件需要变化时,我们应该尽量通过扩展的方式来实现变化,而不是通过修改已有代码来实现。
 
实现开放封闭原则的关键就是抽象。对应已存在的实现类对应修改时封闭的,但是心的实现类可以通过覆盖父类的接口应对变化。

3.里氏替换原则

英文:Liskov Substitution Principle,缩写LSP
 
定义:所有引用基类的地方必须能透明的使用其子类的对象
 
理解:只要父类能出现的地方子类就可以出现,而且替换为子类不会产生任何错误或异常,使用者根本不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必能适应。总结起来就是:抽象。
 

4.依赖倒置原则

英文:Dependence Inversion Principle,缩写DIP
 
定义:高层模块不应该依赖底层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。
 
抽象是指接口或抽象类,两者都是不能直接被实例化的;细节就是实现类,实现接口或继承抽象类而产生的类就是细节,其特点是可以实例化,也就是可以加上一个关键字 new 产生一个对象。高层模块就是调用端,底层模块就是具体实现类。
 
理解:这个原则的精髓就是,面向接口编程,或者说面向抽象编程,这里的抽象是指接口或者抽象类。依赖倒转原则是开放封闭原则实现的手段,是抽象的最好规范。依赖抽象,而不依赖具体实现。

5.接口隔离原则

英文:Interface Segregation Principle,缩写ISP
 
定义:客户端不应该依赖它不需要的接口,即类间的依赖关系应该建立在最小接口上。
 
理解:就是将非常庞大,臃肿的接口拆分成更小的和更具体的接口(这个和单一职责有点像只不过这个是接口),这样使用者只需要知道他们感兴趣的方法就行。这样做可以使系统拥有更低的耦合性、更高的灵活性。这个原则说白了就是,让客户端依赖的接口尽可能的小。

6.迪米特原则

英文:Law of Demeter,缩写LOD
 
定义:这个原则也叫最少知识原则:一个对象应该对其它对象有最少的了解。
 
理解:这个原则有一个英文解释就是说 Only talk to your immedate friends,翻译就是只和直接的朋友通信。什么是直接朋友?每个对象都必然会与其他对象有耦合关系,两个对象直接的耦合就成为朋友关系,这种类型有很多,如组合,聚合,依赖等。
 
调用者或者依赖者只要知道它需要的方法即可,至于方法是如何实现的,实现方法的类需要做什么,都不需要知道。知道的越少耦合度约低,当一个类发生变化的时候,对另一个类的影响越小。就像现实中的找中介租房,我们只关系房间的面积和租金,让中介将符合要求的房子提供给我们就行了。