热门关键词:

成都软件开发编程中的SOLID原理

添加时间:2020-06-16 11:02:47

来源:

浏览:

在成都软件开发中,面向对象软件定制设计在编写灵活,可伸缩,可维护和可重用的代码方面起着至关重要的作用。使用OOD有很多好处,但是每个开发人员也应该了解SOLID原理,以便在编程中进行良好的面向对象设计。SOLID原则是由Robert C. Martin(也称为Bob叔叔)引入的,它是编程中的编码标准。该原则是以下五个原则的缩写。


单一责任原则(SRP)

开/关原则

里斯科夫的替代原则(LSP)

接口隔离原理(ISP)

依赖倒置原则(DIP)


SOLID原理有助于减少紧密耦合。紧密耦合意味着一组类彼此高度依赖,您应该在代码中避免这些类。与紧密耦合相对的是松散耦合,当您的代码具有松散耦合的类时,您的代码将被认为是好的代码。松散耦合的类可最大程度地减少代码更改,有助于使代码更可重用,可维护,灵活且稳定。现在让我们一一讨论这些原则...


1.单一责任原则:该原则规定“ 一个班级只有一个改变的理由 ”,这意味着每个班级都应该有一个单一的责任,一个工作或一个目的。以开发软件为例。任务被划分为不同的成员,例如前端设计师进行设计,测试人员进行测试,后端开发人员负责后端开发部分,然后我们可以说每个人都有一项工作或职责。

在大多数情况下,程序员不得不添加功能或新行为时,他们会在现有类中实现所有功能,这是完全错误的。这会使他们的代码冗长,复杂,并在以后需要修改某些内容时浪费时间。使用图层 在您的应用程序中,将God类分成较小的类或模块。


2.开放/封闭原则:该原则指出“ 软件实体(类,模块,功能等)应为扩展而开放,而为修改而封闭 ”,这意味着您应该能够扩展类行为,而无需对其进行修改。

假设开发人员A需要发布库或框架的更新,而开发人员B想要对其进行一些修改或添加一些功能,则允许开发人员B扩展由开发人员A创建的现有类,但开发人员B不应直接修改该类。 。使用此原理可以将现有代码与修改后的代码分开,从而提供更好的稳定性,可维护性,并最大程度地减少代码中的更改。


3. Liskov的代换原则: Barbara Liskov于1987年引入了该原则,并根据该原则“ 派生或子类必须替代其基类或父类 ”。该原则确保作为父类的子类的任何类都可以代替其父类使用,而不会发生任何意外行为。

您可以这样一种方式来理解它,即农民的儿子应该从父亲那里继承农业技能,并在需要时能够代替父亲。如果儿子想成为农民,那么他可以代替父亲,但是如果他想成为板球运动员,那么即使儿子和儿子都属于同一家庭等级,也可以肯定儿子不能代替父亲。

此原理的经典示例之一是具有四个边的矩形。矩形的高度可以是任何值,宽度可以是任何值。正方形是宽度和高度相等的矩形。因此,可以说我们可以将矩形类的属性扩展为正方形类。为此,您需要将子类(正方形)与父类(矩形)类交换以适合具有四个相等边的正方形的定义,但派生类不会影响父类的行为,因此如果您愿意它将违反《里斯科夫换人原则》。检查链接里斯科夫替代原理以获得更好的理解。


4.接口隔离原则:此原则是适用于接口而不是SOLID中的类的第一项原则,它类似于单职责原则。它指出“ 不要强迫任何客户端实现与其无关的接口 ”。在这里,您的主要目标是避免出现胖界面,而优先选择许多小型的特定于客户端的界面。您应该选择许多客户端接口,而不是一个常规接口,并且每个接口都应负有特定责任。

假设您进入餐厅,并且您是纯素食主义者。那家餐厅的服务员给了您菜单卡,其中包括素食,非素食,饮料和糖果。在这种情况下,作为客户,您应该拥有一张菜单卡,其中仅包含素食,而不包含您不食用的所有食物。在这里,菜单应针对不同类型的客户而有所不同。每个人的通用或通用菜单卡可以分为多个卡,而不是一个。使用此原理有助于减少副作用和所需更改的频率。


5.依赖倒置原则:在讨论本主题之前,请记住,依赖倒置和依赖注入都是不同的概念。大多数人对此感到困惑,并认为两者是相同的。现在在此要牢记两个关键点


高级模块/类不应依赖于低级模块/类。两者都应依赖抽象。

抽象不应依赖细节。细节应取决于抽象。

上面的几行仅说明,如果高级模块或类将更多地依赖于低级模块或类,则您的代码将紧密耦合,并且如果您尝试对一个类进行更改,则可能会破坏另一个具有风险的类在生产水平上。因此,始终尝试使类尽可能松散地耦合,并且可以通过抽象来实现。该原理的主要动机是将依赖关系解耦,因此,如果类A发生更改,则类B无需关心或知道更改。

您可以考虑电视遥控器电池的真实示例。您的遥控器需要电池,但不取决于电池品牌。您可以使用任何想要的XYZ品牌,它将起作用。因此,可以说电视遥控器与品牌名称是松散耦合的。依赖倒置使您的代码更具可重用性。


需要软件开发就找我们成都软件开发公司吧!

用户名 Name
评论 Comment

软件开发  相关内容

——
21

2020-09

固定资产管理系统有什么好处

  公司的资产管理系统是对公司的固定资产进行信息管理。该软件结合条形码、二维码和射频识别技术,对公司固定资产从入库到报废的整个生命周期进行监控和管理。根据公司对固定资产管理的要求,提供公司的固定资产购置计划、定期维护、存货折旧、分配等特色功能。公司的固定资产管理系统还具有权限分配… [了解更多]

21

2020-09

固定资产管理系统解决方案

固定资产管理系统功能列表智能看板可视化图形展示,资产数量统计,资产金额统计,有效资产统计,易耗品统计仓储管理资产入库,资产领用,资产退库,归还管理,各类标签打印资产管理资产添加、修改等,资产生命周期记录,恢复删除的资产信息,资产导出、资产检索,资产卡片打印智能提醒资产维修提醒,到… [了解更多]

21

2020-09

EAM系统开发

EAM是Enterprise Asset Management 的缩写,EAM系统即企业资产管理系统,是指资产比重较大的企业,在资产建设、维护中减少维护成本,提高资产运营效率,通过现代信息技术减少停机时间,增加产量的一套企业资源计划系统。EAM资产管理系统是面向资产密集型企业信息… [了解更多]

16

2020-06

成都软件开发编程中的SOLID原理

在成都软件开发中,面向对象软件定制设计在编写灵活,可伸缩,可维护和可重用的代码方面起着至关重要的作用。使用OOD有很多好处,但是每个开发人员也应该了解SOLID原理,以便在编程中进行良好的面向对象设计。SOLID原则是由Robert C. Martin(也称为Bob叔叔)引入的,… [了解更多]

27

2020-03

软件开发安全措施,防止5种常见黑客技术

黑客攻击是利用漏洞获取未经授权访问任何计算机,智能手机,平板电脑或网络系统的过程。黑客使用先进的计算机和编程技能,在他们不了解的情况下利用并进入受害者的系统,并获得大量个人信息,包括带有密码的个人和财务数据。并非所有的黑客都使用他们的技能来开发系统或访问受害者的系统,而是他们使用… [了解更多]

关注

成都软件开发

  • 地 址:成都市人民南路四段成科西路三号 863国家孵化园
  • 电 话:18215 660330
  • 手机:18215 660330
  • 传 真:18215 660330
  • 邮 箱:179001057@qq.com
  • 邮政编码:610000