面向对象设计的6大原则是何方神圣

程序员小迷 2024-06-29 11:37:59

一、单一职责原则(Single Responsibility Principle, SRP)

一个类或模块应该只负责一种功能。

不要存在多于一个导致类变更的原因。

单一职责原则有助于保持代码的高内聚和低耦合,使程序更易于理解、扩展和维护。

二、开放关闭原则(Open-Closed Principle, OCP)

软件实体(类、模块、函数等)应该对扩展开放,而对修改关闭。

用抽象构建框架,用实现扩展细节。

开放关闭原则意味着在开发迭代或增加新的功能时不需要修改现有的代码,而是通过扩展现有的代码来实现。

三、里氏替换原则(Liskov Substitution Principle, LSP)

子类对象能够替换父类对象,并且程序的逻辑不会发生变化。

所有引用基类的地方都必须能透明地使用其子类的对象。

不要重写父类 A 的非抽象方法,而要重写父类 A 的抽象方法。

里氏替换原则保证了继承关系的正确性和可靠性,提高了代码的可扩展性和复用性。

四、迪米特法则(Law of Demeter, LoD)

一个对象应该对其他对象有最少的了解。

尽量降低类与类之间的耦合。

迪米特法则也被称为最少知识原则,它要求对象只与直接的类通信,不与间接的类通信,从而减少了不必要的依赖关系,提高了代码的灵活性和可维护性。

五、接口隔离原则(Interface Segregation Principle, ISP)

客户端不应该被迫依赖它不使用的接口。

一个类对另一个类的依赖应该建立在最小的接口上。

建立功能单一的接口,不要建立功能庞大的接口(会导致耦合性增强,增加对不必要的功能的依赖),尽量细化接口,使接口中的方法尽量少。

六、依赖倒置原则(Dependency Inversion Principle, DIP)

高层模块不应该依赖低层模块,二者都应该依赖于抽象。

抽象不应该依赖于细节,细节应该依赖于抽象。

抽象指的是接口或者抽象类,细节就是具体的实现类。使用接口或者抽象类的目的 是制定好规范和契约,而把具体的操作及展现细节的任务交给他们的实现类去完成。

依赖倒置原则的核心思想是 面向接口编程。

通过依赖注入(Dependancy Injection,DI)等技术可以实现依赖倒置原则,从而减少模块间的耦合性。

上述这些原则的英文写法的首字母缩写为SOLID,它们是面向对象设计的基础,有助于创建更灵活、可维护性和可扩展性更好的软件系统。

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

0 阅读:7

程序员小迷

简介:致力于Android、C等编程技术的技巧经验分享