【设计模式】六大原则已完结,悟透它,你将吃透OOP

e7ffe47533ab4159b341fe720321b591.png

1. 六大原则的核心宗旨

设计模式六大原则是面向对象设计的基石,旨在指导开发者如何创建松耦合可维护可扩展的软件设计。这些原则不仅提高了软件设计的质量,还使得软件更容易适应未来的变化。

2. 六大原则的产生背景

设计模式的六大原则是在面向对象编程实践中逐渐形成和发展起来的,即软件工程领域中形成和发展起来的。

设计模式的概念最初并不是出现在软件设计中,而是被用于建筑领域的设计中。直到1990年,软件工程界才开始研讨设计模式的话题。

1995年,“四人组”(Gang of Four, GoF)合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software),在书籍中收录了23个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。

这些原则是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。

3. 六大原则介绍

93906fb6d2ac426d9434a11f53e096b3.png

设计模式的六大原则是软件开发中的重要指导原则,它们分别是单一职责原则开放封闭原则里氏替换原则接口隔离原则依赖倒置原则迪米特法则。‌

本章节是对设计模式六大原则的总结,即一个索引作用,点击每个原则小标题,可以进入各自详细介绍

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

d0806d07d5ec441282f862cdd22357c3.png

单一职责原则强调一个类应该只有一个引起变化的原因。如果一个类承担了过多的职责,那么当其中一个职责发生变化时,可能需要修改类的其他部分,这违反了开放封闭原则。通过将类拆分为更小的、更具体的类,每个类只负责一个功能或职责,可以提高代码的可维护性和可读性。

3.2 开放封闭原则(Open/Closed Principle, OCP)‌

0aad0ba7d3c947309b8cc2347839cda8.png

开放封闭原则,即开闭原则强调软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。这意味着当软件需要适应新的需求时,我们应该通过添加新的代码来扩展系统的行为,而不是修改现有的代码。这有助于保护软件投资,减少因修改带来的风险。

3.3 里氏替换原则(Liskov Substitution Principle, LSP)‌

6c5c0a7cb5da4301a718125c1fdd9767.png

里氏替换原则确保子类可以替换其基类而不会产生任何问题。这意味着在软件设计中,基类及其子类应该保持一致的行为,子类不应该重写父类的方法以引入新的行为,而应该扩展父类的行为。这有助于保持系统的稳定性和一致性。

3.4 接口隔离原则(Interface Segregation Principle, ISP)‌

e60b92f1a19840418ade9400dafb9152.png

接口隔离原则指出,客户端不应该依赖于它不需要的接口。接口应该被细分为更小更具体的部分,这样客户端只需要知道和使用它感兴趣的方法。这有助于减少客户端与接口之间的耦合度,提高系统的可维护性和可扩展性。

3.5 依赖倒置原则(Dependency Inversion Principle, DIP)‌

13b6965cd2c54766912e2ce7c0afde25.png

依赖倒置原则强调高层模块不应该依赖于低层模块,而应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。这意味着我们应该通过定义接口或抽象类来解耦代码,使得代码更加灵活和可维护。

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

1e7acc1fb7bf4d448c195568dc5dceeb.png

迪米特法则,也称为最少知识原则,强调一个对象应当尽可能少地了解其他对象,仅与直接的朋友类进行通信。这有助于减少对象之间的耦合,提高代码的可读性和可维护性。通过降低对象之间的直接交互,可以减少系统的复杂性,提高系统的可扩展性。

4. 总结

综上,设计模式六大原则是面向对象设计的基石,旨在指导开发者如何创建松耦合可维护可扩展的软件设计。这些原则不仅提高了软件设计的质量,还使得软件更容易适应未来的变化。

设计模式六大原则是软件开发中的重要指导原则,它们分别是 单一职责原则开放封闭原则里氏替换原则接口隔离原则依赖倒置原则迪米特法则。‌

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码踏云端

你的打赏是我精心创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值