在面试软件编程,软件设计中,最主要的软件设计原则是:SOLID原则,那这个原则具体是什么呢? 这个问题可能在面试中会用到,今天就这个话题开始说。想知道代码编写中的基本原则(请看:代码编写的原则总结),
废话不多说,直接上:
SOLID其实是5种软件设计原则名称的首字母,他们分别是:
Single Responsibility Principle:单一职责原则
Open Closed Principle:开闭原则
Liskov Substitution Principle :Liskov替换原则
Interface Segregation Principle:接口分离原则
Dependency Inversion Principle":依赖原则
单一职责原则
从字面上的意思上理解,也就是我们的数据和函数功能上的单一。这样一方面便于模块化,也能让模块变得更加内聚!(明确分工就能更好的进行问题处理和程序设计上的耦合)
开闭原则
原则的意思是“对扩展开放对修改关闭”,也就是说增加新的代码来进行扩展我们模块的功能,而不是修改当前的代码来兼容以前的代码(简单点就是不应该修改已有的且客户正常使用的功能代码,而是客户提出新的需求之后,我们通过增加代码和旧的代码共同为客户服务。这样一方面能够缩短测试过程,同时保证旧功能的稳定性)
Liskov替换原则
替换原则主要是为了不改变底层的变动的一种思想,当我们上层需要实现新的功能的时候,我们底层的接口一般不需要进行修改,而是用现有接口实现新的上层应用,其实也就要求我们在进行底层接口开发的时候,中层接口也应该具备底层接口的相关功能,以便上层使用(需要全面存在的)。
接口分离原则
有时候为了把接口完全的开放给用户,出现了一大堆接口,这样是没有必要的,因为有些接口用户根本用不上,我们需要对接口进行分类简化,根据用户需求进行接口的分离!使得接口更容易被移植和使用!
依赖倒置原则
上层依赖的不应该是具体的某个对象,而应该依赖一种抽象的类! 比如说我们要开发一个通信协议,该通信协议不应该依赖于串口这个设备对象,而是应该依赖于一种普遍的通讯类。