前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见的软件设计原则

常见的软件设计原则

作者头像
luoxn28
发布2021-07-20 17:14:51
6440
发布2021-07-20 17:14:51
举报
文章被收录于专栏:TopCoderTopCoder

设计模式就是软件设计中沉淀出的一些代码设计经验,设计模式主要是基于OOP角度来总结的。

软件设计原则的目的是 代码复用性、代码可扩展性、代码可维护性。

常见的软件设计原则分为:单一职责、开闭原则、接口隔离、里式替换、迪米特原则、依赖倒置原则

单一职责

一个类或者方法只有一个职责,只有一个引起它变化的原因。

如果一个类有2个以上的职责,这些职责就耦合在一起了,会导致其中一个变化时,会影响到其他责任。多个职责耦合在一起,会影响代码复用性、对测试不友好。

开闭原则

开闭原则就是说对扩展开放,对修改关闭。

在程序需要进行拓展的时候,尽量不去修改原有的代码,实现一个热插拔的效果。一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,通过实现类达到扩展需求。

里氏代换原则

里氏代换原则(Liskov Substitution Principle LSP)是面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

依赖倒置原则

所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。

接口隔离原则

接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。

迪米特法则

为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。也就是说一个软件实体应当尽可能少的与其他实体发生相互作用。这样,当一个模块修改时,就会尽量少的影响其他的模块,扩展会相对容易,这是对软件实体之间通信的限制,它要求限制软件实体之间通信的宽度和深度。

日常开发工作中,使用上述设计原则虽然不能保证写出完美的系统,但是可以保证系统实现不会差,基本的扩展性可维护性还是能够满足的。如果有些场景下,不能严格按照软件设计原则来实现,起码的隔离性要求还是要满足的,这样才能保证在后续修改时控制影响面,避免改动牵一发而动全身。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TopCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单一职责
  • 开闭原则
  • 里氏代换原则
  • 依赖倒置原则
  • 接口隔离原则
  • 迪米特法则
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档