六大设计原则(SOLID)

一、SOLID

设计模式的六大原则有:

  • Single Responsibility Principle:单一职责原则
  • Open Closed Principle:开闭原则
  • Liskov Substitution Principle:里氏替换原则
  • Law of Demeter:迪米特法则
  • Interface Segregation Principle:接口隔离原则
  • Dependence Inversion Principle:依赖倒置原则

把这六个原则的首字母联合起来(两个 L 算做一个)就是 SOLID (solid,稳定的),其代表的含义就是这六个原则结合使用的好处:建立稳定、灵活、健壮的设计。下面我们来分别看一下这六大设计原则。

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

一个类应该只有一个发生变化的原因

There should never be more than one reason for a class to change.

六大设计原则之单一职责原则(SRP)

三、开闭原则(Open Closed Principle)

一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭

Software entities like classes, modules and functions should be open for extension but closed for modification

六大设计原则之开闭原则(OCP)

四、里氏替换原则(Liskov Substitution Principle)

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

Functions that use use pointers or references to base classes must be able to use objects of derived classes without knowing it.

六大设计原则之里氏替换原则(LSP)

五、迪米特法则(Law of Demeter)

只与你的直接朋友交谈,不跟“陌生人”说话

Talk only to your immediate friends and not to strangers

其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。

六大设计原则之迪米特法则(LOD)

六、接口隔离原则(Interface Segregation Principle)

1、客户端不应该依赖它不需要的接口。
2、类间的依赖关系应该建立在最小的接口上。

Clients should not be forced to depend upon interfaces that they don`t use.
The dependency of one class to another one should depend on the smallest possible.

注:该原则中的接口,是一个泛泛而言的接口,不仅仅指Java中的接口,还包括其中的抽象类。

六大设计原则之接口隔离原则(ISP)

七、依赖倒置原则(Dependence Inversion Principle)

1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。
2、抽象不应该依赖于细节,细节应该依赖于抽象。

High level modules should not depend upon low level modules. Both should depend upon abstractions.
Abstractions should not depend upon details. Details should depend upon abstractions.

依赖倒置原则(DIP)

参考:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计模式是软件设计中常用的最佳实践,它们是解决常见问题和复用已验证解决方案的经验总结。六大原则是 SOLID 原则,这些原则有助于编写可扩展、灵活且易于维护的代码。以下是 SOLID 原则及其优点: 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. 里氏替换原则(Liskov Substitution Principle, LSP,我在上一条已经提到了,这是个笔误,实际是单一职责原则,SOLID中有四个原则,没有LSP)。 遵循这些原则能帮助开发者编写出清晰、灵活、易于理解和维护的代码,提高团队协作效率,并且有助于项目的长期可持续发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值