单一职责原则开放封闭原则里式替换原则依赖倒置原则接口隔离原则迪米特原则
时间: 2024-06-18 11:02:31 浏览: 14
单一职责原则指一个类只应该有一个引起它变化的原因[^1],即一个类或者模块只负责一项功能。这有助于提高代码的可读性、可维护性和可扩展性。
开放封闭原则指软件实体(类、模块、函数等)应该对扩展开放,对修改封闭[^2]。即在不修改原有代码的基础上,通过扩展来实现新的功能。
里式替换原则指子类对象(派生类)能够替换其基类对象(父类),而程序逻辑(正确性、任务完成等)不受影响[^3]。也就是说,子类可以扩展父类的功能,但不能改变父类原有的功能。
依赖倒置原则指高层模块不应该依赖低层模块,二者都应该依赖其抽象接口;抽象接口不应该依赖实现细节,实现细节应该依赖抽象接口[^4]。即在设计时,应该依赖于抽象而不是具体实现。
接口隔离原则指客户端不应该被迫依赖于它不需要的接口。该原则鼓励类设计者将类的粒度细化,将臃肿庞大的接口拆分成更小的和更具体的接口[^5]。这有助于降低类之间的耦合性,提高代码的可读性和可维护性。
迪米特原则(最少知道原则)指一个软件实体应当尽可能少地与其他实体发生相互作用,使得系统中的各个组件更加独立[^6]。也就是说,一个对象应该对其他对象有尽可能少的了解,不和陌生人说话。
相关问题
六大设计原则+依赖倒置原则
六大设计原则是指面向对象设计中的六个重要原则,它们是:
1. 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起它变化的原因,即一个类应该只有一个职责。
2. 开放封闭原则(Open-Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即在不修改已有代码的情况下,通过扩展来实现新的功能。
3. 里氏替换原则(Liskov Substitution Principle,LSP):子类型必须能够替换掉它们的父类型。即在使用基类对象的地方,可以用其子类对象来替代,而不会影响程序的正确性。
4. 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该依赖它不需要的接口。即一个类对另一个类的依赖应该建立在最小的接口上。
5. 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖低层模块,二者都应该依赖于抽象。即要针对接口编程,而不是针对实现编程。
6. 迪米特法则(Law of Demeter,LoD):一个对象应该对其他对象有尽可能少的了解,即一个对象应该只与其直接的朋友通信,而不与陌生的对象通信。
依赖倒置原则是六大设计原则中的一项,它强调高层模块不应该依赖低层模块,二者都应该依赖于抽象。具体来说,依赖倒置原则要求:
1. 高层模块不应该直接依赖于低层模块的具体实现,而应该依赖于抽象接口。
2. 抽象接口应该由高层模块定义,低层模块去实现。
3. 通过依赖倒置,可以降低模块间的耦合度,提高代码的可维护性和可扩展性。
不属于kettle的设计原则
Kettle是一种常见的设计模式,它包含了一些设计原则,如单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则等。但是,以下是一些不属于Kettle设计原则的其他设计原则:
1. 接口隔离原则(Interface Segregation Principle,ISP):该原则指导我们设计接口时应该精简而专注,避免设计臃肿的接口,使得客户端只依赖于自己需要的接口。
2. 迪米特法则(Law of Demeter,LoD):该原则也被称为最少知识原则(Least Knowledge Principle,LKP),它要求我们在设计中尽量减少对象之间的耦合,一个对象应该尽量少了解其他对象的内部结构。
3. 单例模式(Singleton Pattern):该模式保证一个类只有一个实例,并提供一个全局访问点。它并不是一个设计原则,而是一种创建对象的设计模式。
4. 享元模式(Flyweight Pattern):该模式通过共享对象来减少内存使用和提高性能。它也不是一个设计原则,而是一种结构型设计模式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)