# SOLID原则
简写 | 英文全称 | 中文全称 | 功能 |
---|---|---|---|
S | SRP(Single Responsibility Principle) | 单一职责原则 | 一个类仅具有单一功能(职责) |
O | OCP(Opened Closed Principle) | 开闭原则 | 扩展开放,修改封闭 |
L | LSP(Liskov Substituion Principle) | 里式替换原则 | 派生类可以替换基类的使用 |
I | ISP(Interface Segregation Princple) | 接口隔离原则 | 使用客户端特定的细粒度接口 |
D | DIP(Dependency Inversion Principle) | 依赖反转原则 | 依赖抽象而不是具体实现 |
# 单一职责原则
单一职责原则最终的目的是高内聚
。
设计类或方法的时候,应该尽可能的将复杂的逻辑拆分为简单的职能。
每一个方法只做一件事情,每个类只代表一件事物。
# 开闭原则
开闭原则的最终目的是提高系统的可维护性(扩展功能等)和代码的重用性
。
软件实体对于扩展是开放的,而对于修改是封闭的。
在程序扩展的时候,不应该去修改原有代码,而是应该实现一个热插拔的效果。
# 里式替换原则
里氏替换原则最终目的是减少继承的缺点,增强程序的健壮性
。
所有的父类都可以被子类替换,而不会使系统发生任何异常。
子类可以扩展父类的功能,但不能改变父类原有的功能。
# 接口隔离原则
接口隔离原则的最终目的是低耦合
。
客户端不应该被迫依赖于它所不使用的方法。
一个接口负责多个功能,应该拆成颗粒度更细的多个接口,每个接口负责单独的一个功能。
# 依赖反转原则
依赖反转原则的目的是高层模块与底层模块解耦,使得设计更加灵活
。
高层模块不应该依赖于底层模块,他们都应该依赖于抽象。
抽象不应该依赖于细节,细节应该依赖于抽象。
# 总结
五个基本原则使得程序低耦合
、高内聚
、易扩展与重构
、设计更灵活
、程序更健壮
。