美文网首页
常见的设计原则

常见的设计原则

作者: 李明燮 | 来源:发表于2020-07-15 23:24 被阅读0次

这些天因为工作上的需求,一套代码部署到不同的环境里。
虽然说是一样的业务,但是在不同的环境里难免会有一些少许不同的业务。
刚开始的时候觉得没什么问题,分了几个分支。

但是后来感觉越来越不对劲了,不同的环境分不同的分支,以为是很简单的事情。
时间长了,分支之间的差异也越来越大,感觉应该分不同的仓库。
这分了仓库问题又来了,改了Bug需要再不同的仓库里重复的修改代码,审查代码,合并代码,测试...
把我忙的不亦乐乎。

这让我怀疑,是不是代码结构本身有问题?
虽然现在用的Go语言不是面向对象编程语言,
但是我觉得经典的面向对象编程思想应该能对我有帮助。
我就查查看看这些原则,当做自己的笔记简单的整理了一下。

代码架构的设计原则中最普遍的是solid原则。

SRP     Single Responsibility Principle     单一责任原则
OCP    Open Closed Principle                开放封闭原则
LSP     Liskov Substitution Principle       里氏替换原则
ISP     Interface Segregation Principle     接口分离原则
DIP     Dependency Inversion Principle      依赖反转原则



◆ SRP:单一责任原则(Single Responsibility Principle)

一个类只完成它应该完成的职责。

任何一个软件模块都应该只对某一类行为者负责。
它的作用就是告诉我们在哪里划清边界。

◆ OCP:开放封闭原则(Open Closed Principle)

软件实体(类,模块,函数等等)应当对扩展开放,对修改闭合。

这其实就是要关注,增加新的功能的时候能不能不修改以前旧代码?
增加新功能,需要大改旧代码,说明没做好开放封闭原则。

◆ LSP:里氏替换原则(Liskov Substitution Principle)

模块之间应能自由替换。

其实就是替换别的模块的时候不应该影响别的模块,导致发生修改事项。

◆ ISP:接口分离原则(Interface Segregation Principle)

如果一个接口包含了过多的方法,应该通过分离接口将其拆分。

如果依赖和自己没有关系或不需要的东西,需要应该把他拆分,只依赖和自己有关系的不分。

◆ DIP:依赖反转原则(Dependency Inversion Principle)

上层(抽象)不应该依赖于下层(实体),下层(实体)应该依赖于上层(抽象)。

换句话说上层策略性代码不应该依赖底层细节性代码,
底层细节性代码应该依赖上层策略性的代码。


包的内聚性三原則

◆ REP:复用/发布等同原则(Release Reuse Equivalency Principle)

复用的粒度就是发布的粒度,重用的包需要版本管理,使新版本发布后还可以继续使用老版本。

不应该通过复制粘贴代码来复用,应该通过能发布的包复用代码。

◆ CCP:共同闭包原则(Common Closure Principle)

将那些因相同原因同时发生变化的类集合到组件中。

有相同改变原因放入同一個组件。
告诉我们哪些应该放在一起,倾向于把组件个体变大。

◆ CRP:共同复用原则(Composite Reuse Principle)

不要强迫依赖他们不需要的东西,
一个包中的所有类应该是共同重用的,如果重用了包中的一个类,就应该重用包中的所有类。

为了不必要的发布,切分没有关联的功能。
告诉我们哪些不一应该放在一起,倾向于把组件个体变小。


包的耦合性三原则

◆ ADP:无依赖环原则(Acyclic Dependencies Principle)

组件或包的依赖关系图中不允许存在环。

不要出现以下情况 A -> B -> C -> A

◆ SDP:稳定依赖原则(Stable Dependencies Principle)

依赖关系必须指向更稳定的方向

不稳定的依赖稳定的,稳定的不要依赖不稳定的。

◆ SAP:稳定抽象原则(Stable Dependencies Principle)

组件或包的抽象程度应该和其稳定程度一致

越抽象的应该是越稳定的。


欢迎大家的意见和交流

email: li_mingxie@163.com

相关文章

  • 常见的设计原则

    这些天因为工作上的需求,一套代码部署到不同的环境里。虽然说是一样的业务,但是在不同的环境里难免会有一些少许不同的业...

  • OOP程序设计规则

    开闭原则(Open-Closed Principle,OCP) 开闭原则是这七大设计原则中最常见、最基本的开闭原则...

  • 01. Java设计模式的设计原则

    01. Java设计模式的设计原则 常见的7中面向对象设计原则 一、单一职责原则 一个类中负责一个功能领域中的相应...

  • 设计常见原则(一)

    本文为书籍<设计通用法则>的笔记摘抄 80/20法则 80%的效果由20%的关键因素决定。客户使用一个产品,80%...

  • 架构总结10--架构设计流程:第二步:设计备选方案

    错误理念: 第一种常见的错误:设计最优秀的方案。根据架构设计原则中“合适原则”和“简单原则“的要求,挑选合适自己业...

  • 关于对比性设计原则的使用方法

    我们在学习网页设计等相关技术知识的时候会去了解和掌握不同的设计原则,而其中对比性原则就是非常常见的设计原则之一,下...

  • 设计模式(八) -- 实践中如何运用设计模式原则

    什么是设计模式原则 设计模式原则就是常见的六大原则(单一职责,里氏替换,接口隔离,依赖倒置,迪米特,开闭),各个职...

  • 面向对象设计原则

    七种最常见的面向对象设计原则的基本概念 1、单一职责原则(Single Responsibility Princi...

  • 前端常见的9种设计模式

    本文目录: 1.概念 2.设计原则 3.设计模式的类型 前端常见设计模式1:外观模式(Facade Pattern...

  • 常见的面向对象设计原则

    单一职责原则(SRP)(Single Responsiblility Principle) 一个类只做一种类型责任...

网友评论

      本文标题:常见的设计原则

      本文链接:https://www.haomeiwen.com/subject/gsmshktx.html