今天介绍设计模式中的SOLID原则, 它可以使程序解决紧耦合, 更加健壮.
一共的六大原则(有两个L):
Single Responsibility Principle: 单一职责原则
Open Closed Principle: 开闭原则
Liskov Substitution Principle: 里氏替换原则
Law of Demeter: 迪米特法则
Interface Segregation Principle: 接口隔离原则
Dependence Inversion Principle: 依赖倒置原则
1
单一职责原则(Single Responsibility Principle)
单一职责原则简称 SRP, 就是一个类只负责一个职责.
一个类只做一件事, 复杂度就会降低, 代码风险也随之降低, 维护成本降低;
2
开闭原则(Open Closed Principle)
开闭原则是指一个模块, 类, 软件要对扩展开放, 修改关闭.
随着需求的迭代, 业务越来越复杂, 再修改原有代码, 就很可能引入bug, 需要对整个服务进行测试. 而策略模式就是其中最常用的解决方式.
3
里氏替换原则(Liskov Substitution Principle)
氏替换原则的意思是, 所有用父类的地方, 都替换成子类, 程序还可以正常运行.
定义太抽象不好理解, 换种方式说明就是, 设计时采用接口或者抽象类, 并由子类来实现抽象方法, 就是里氏替换原则.
子类必须实现父类的抽象方法, 但不能重写父类的非抽象方法. 子类中可以增加自己特有的方法.
还可以在语法层面通过在父类方法中加final修饰, 防止子类重写而违反里氏替换原则.
4
迪米特法则(Law of Demeter)
迪米特法则又叫做最少知道原则, 就是说一个对象应当对其它对象有尽可能少的了解, 不要和陌生人说话. 目的是降低类之间的耦合, 每个类尽量减少对其它类的依赖,使得系统的功能模块独立.
典型的案例就是老板只需关心leader就可以, 而不需要关心具体成员.
Boss—>TeamLeader—>member
5
接口隔离原则(Interface Segregation Principle)
接口隔离原则是指调用端不应该依赖它不需要的接口或抽象类.
使用多个专门的接口比使用一个接口多种不同类型方法的形式要好很多.
接口隔离原则和单一职责都是为了提高类的内聚性、降低它们之间的耦合性, 体现了封装的思想, 但两者是不同的:
单一职责原则注重的是职责, 而接口隔离原则注重的是对接口依赖的隔离.
单一职责原则主要是约束类, 它针对的是程序中的实现和细节;接口隔离原则主要约束接口, 主要针对抽象和程序整体框架的构建.
6
依赖倒置原则(Dependence Inversion Principle)
程序要依赖于抽象接口, 不要依赖于具体实现. 简单的说就是要求对抽象进行编程, 不要对实现进行编程, 这样就降低了客户与实现模块间的耦合.
小结
以上就是设计模式里的六大基本原则, 好好理解下, 一定能使你收益匪浅的.