首页 > 其他分享 >软件开发、设计、架构的五大原则

软件开发、设计、架构的五大原则

时间:2023-04-28 09:22:05浏览次数:53  
标签:逻辑 架构 原则 软件开发 Principle 内聚 耦合 五大 单元

唯一不变的就是变化本身。

我们经常讲的系统、子系统、模块、组件、类、函数就是从逻辑上将软件一步步分解为更细微的部分,即逻辑单元, 分而治之, 复杂问题拆解为若干简单问题, 逐个解决。

逻辑单元内部、外部的交互会产生依赖,从而产生了内聚、耦合概念。内聚主要描述逻辑单元内部,耦合主要描述逻辑单元之间的关系。

我们经常讲的高内聚,低耦合,如何做到,做到的标准是什么?这就是开发、设计、架构的五大原则所体现出的价值,最终达到高内聚,低耦合的软件目标。

耦合

逻辑单元之间存在依赖, 导致改动可能会互相影响, 关系越紧密, 耦合越强,逻辑单元独立性越差。

比如模块A直接操作了模块B中数据, 则视为强耦合, 若A只是通过数据与模块B交互, 则视为弱耦合。

内聚

逻辑单元内部的元素, 关联性越强, 则内聚越高, 逻辑单元单一性更强。 一个逻辑单元应当尽可能独立完成某个功能。
比如有各种场景需要被引入到当前模块, 代码质量将变得非常脆弱, 这种情况建议拆分为多个模块。

高内聚、低耦合

内聚性,又称块内联系。指逻辑单元的功能强度的度量,即一个逻辑单元内部各个元素彼此结合的紧密程度的度量。

耦合性,又称块间联系。指逻辑单元相互联系紧密程度的一种度量。

比如电脑USB口。可以插入USB口工作的设备和电脑都是低耦合性,电脑不依赖于外部任何外部USB设备,只要你符合USB规范,插上就可以用。USB规范就像一个抽象类,所有外部设备必须实现抽象类,确保能被正确调用。

设计模式、SOLID原则等都是为了更好的做到高内聚、低耦合。

SOLID原则

  • S:单一职责原则 (Single Responsibility Principle)
  • O:开闭原则 (Open/Closed Principle)
  • L:里氏替换原则 (Liskov Substitution Principle)
  • I:接口隔离原则 (Interface Segregation Principle)
  • D:依赖倒置原则 (Dependency Inversion Principle)

上述是面向对象编程的关键原则。诸如此类的设计原则能够帮助开发人员构建更易于维护、扩展的系统。

详细讲解请阅读软件开发、设计、架构的五大原则

标签:逻辑,架构,原则,软件开发,Principle,内聚,耦合,五大,单元
From: https://www.cnblogs.com/appsucc/p/17360929.html

相关文章

  • 202308-啊对对队 实验四:软件开发案例(1)
    202308-啊对对队实验四:软件开发案例(1)项目内容班级博客链接2023春软件工程2020级计算机科学与技术本次作业要求链接实验四:软件开发案例(1))团队名称啊对对队团队课程学习目标(1)软件开发环境部署;(2)练习mysql数据库创建和连接访问技术;(3)掌握数据库应用程序开发技......
  • SpringCloud微服务架构分析说明!
    SpringCloud是一个基于SpringBoot的微服务框架,它提供了一系列的工具和组件,用于构建分布式系统中各个微服务之间的通信和互联,实现服务发现、负载均衡、分布式配置等功能。下面我们来具体解析一下SpringCloud微服务架构。服务注册与发现在微服务架构中,服务的数量非常多,因此需要一个机......
  • asp.net c# webform 三层架构,bll,dal,model,dbcommon
    BLL:业务层相当于struts里的action,控制业务逻辑Model:数据实体,相当于struts里的bean,持久化数据的,有set,getDAL:数据层,用来拼凑sql语句DBCommon:与数据库打交道的层,用来CRUD连接数据库等这是我今天学三层了,做了个三层的登陆例子的总结经验,我对三层......
  • 火山引擎 DataLeap 下 Notebook 系列文章三:架构升级详解
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群当使用Notebook的项目日渐增加时,火山引擎DataLeap研发团队发现运行中的PaaS服务实在太多了,之前的架构有如下缺点:部署麻烦。全量升级JupyterLab较为痛苦。尽管有升级脚本,但是通过A......
  • 全球不到400人拥有该证书,成为Salesforce技术架构师前景如何?
    Salesforce技术架构师认证于2011年推出,是认证领域的“巅峰”。迄今为止,全球范围内的技术架构师还不到400人,成为技术架构师似乎是一个虚幻的目标。技术架构师是多年学习、多项必备认证和经验的累积成果,仅考试费用就高达6000美元。并且,还需要投入大量时间学习相关知识,参加相关培训......
  • 架构思路
    作为一个Java架构师,负责设计一个项目的后端代码开发框架,要首先了解业务需求,然后按照以下步骤进行设计和实施。创建项目结构:使用SpringInitializr或者IDE(如:IntelliJIDEA)创建基于SpringBoot的项目,选择适合的依赖,如:Web(SpringMVC),Mybatis(或JPA),MySQL(或其他数据库驱动),Redis,SpringS......
  • Power BI实现组织架构的数据权限过滤,上级可以看下级,也可以看下下级的数据
    1.建立人员的层级关系 2.建立人员和销售订单的关联关系 3.在人员表增加过滤:路径包含当前人登录账号的PATHCONTAINS('系统人员'[path],MaxX(Filter('系统人员',[账号]=USERPRINCIPALNAME()),'系统人员'[账号])) ......
  • 低代码架构设计
    后端设计,领域驱动框架设计。 前端设计界面自动生成 界面示例  ......
  • 如何解决通信架构迁移时的消息格式不一致问题
    有时候,当进行通信架构迁移时,会遇到消息格式不一致的兼容性问题,可采用定义内嵌引用的方式来解决,如下示例:1#include<iostream>23classA{45inta=1;6int&b;78structRequest{9intc;10}request;1112public:13A():......
  • SAAS架构方案
    SAAS(SoftwareasaService)是一种软件交付模型,它允许用户通过互联网访问和使用应用程序。SAAS架构方案需要考虑以下几个因素:多租户架构SAAS应用通常被多个租户共享,因此必须具有多租户架构。这意味着每个租户都可以拥有自己的数据和配置,但他们共享相同的应用程序实例。通常使......