--- title: 面向对象原则 date: 2021-05-19 09:49:05 order: 25 categories: - 设计 - 设计模式 tags: - 设计 - 设计模式 permalink: /pages/3610064d/ --- # 面向对象设计六大原则 ## 单一职责原则 单一职责原则(Single Responsibility Principle),应该有且仅有一个原因引起类的变更。 简单点说,**一个类,最好只负责一件事。** ## 开放-封闭原则 开放-封闭原则(Open Close Principle),软件实体(类、模块、函数)等应该可以扩展,但是不可修改。 对于扩展是开放的;对于更改是封闭的。 ## 里氏替换原则 里氏替换原则(Liskov Substitution Principle),子类可以替换父类。 ## 依赖倒置原则 依赖倒置原则(Dependency Inversion Principle),抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。 关键点: - 高层模块不应该依赖低层模块,两者都应该依赖其抽象 - 抽象不应该依赖细节 - 细节应该依赖抽象 ## 接口隔离原则 接口隔离原则(Interface Segregation Principle)使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。 - 客户端不应依赖它不需要的接口 - 类间的依赖关系应该建立在最小的接口上 ## 迪米特原则 迪米特原则(Least Knowledge Principle)又称最少知识原则,一个软件实体应当尽可能少地与其他实体发生相互作用。 一个类应该对自己需要调用的类知道得最少,类的内部如何实现、如何复杂都与调用者或者依赖者没关系,调用者或者依赖者只需要知道他需要的方法即可,其他的我一概不关心。 ## 参考资料 - [《Head First 设计模式》](https://book.douban.com/subject/2243615/) - [《大话设计模式》](https://book.douban.com/subject/2334288/)