2023-04-14 ·
日常教程 ·
117413
本篇内容介绍了“SOLID设计原则有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
SOLID原则是由罗伯特·C·马丁在21实际早期引入的面向对象编程和面向对象设计的五个基本原则。分别是SRP(单一责任原则)、OCP(开放封闭原则)、LSP(里氏替换原则)、ISP(接口分离原则)、DIP(依赖倒置原则)。它被典型的应用在测试驱动开发商,同时也是敏捷开发以及自适应软件开发基本原则的重要组成部分。
单一责任原则(SRP)
单一责任原则认为一个类应该只具有一个功能。在程序开发中当需要修改某个类的时候原因有且只有一个。假设这个类需要承当其他类型的责任时,就要分解这个类。类被修改的几率很大,如果把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的测试来避免可能出现的问题,极大的损伤其内聚性和耦合度。
开放封闭原则(OCP)
正常情况下软件实体应该是可被扩展,但是不可以被修改的。这里所说的扩展就是表示开放性,而不可以被修改则是表示封闭性。通常情况下这个原则是程序员在开发过程中诸多面向对象编程原则中最抽象、最难理解的一个。
里氏替换原则(LSP)
程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换。里氏替换原则是使代码符合开放封闭原则的一个重要保障。当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。客户模块不应关心服务模块的是如何工作的;同样的接口模块之间,可以在不知道服务模块代码的情况下,进行替换。即接口或父类出现的地方,实现接口的类或子类可以代入。
接口分离原则(ISP)
不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。 注意,在代码中应用ISP并不一定以为这服务就是绝对安全的,同样需要采用良好的编码时间,以确保正确的验证与授权。如Java中一个类实现多个接口,不同的接口给不用的客户模块使用,而不是提供给客户模块一个大的接口。
依赖注入或倒置原则(DIP)
依赖注入或倒置原则规定代码应该取决于抽象的概念,而不是具体实现,具体可以分为两条:1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 ;2. 抽象不应该依赖于细节,细节应该依赖于抽象 这个设计原则的亮点在于任何被DI框架注入的类很容易用mock对象进行测试和维护,因为对象创建代码集中在框架中,客户端代码也不混乱。有很多方式可以实现依赖倒置,比如像AspectJ等的AOP(Aspect Oriented programming)框架使用的字节码技术,或Spring框架使用的代理等。
“SOLID设计原则有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注本站网站,小编将为大家输出更多高质量的实用文章!
这篇文章主要介绍“react中怎么应用SOLID原则”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“react中怎么应用SOLID原则”文章能帮助大家解决问题。什么是开闭原则?Robertc.Martin认为这个原则是面向对象设计最重要的原则。但他不是第一个定...
2023-06-15 · 日常教程 · 209746
这篇文章主要介绍了solidworks和cad有哪些区别,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。solidworks和cad区别:1、AutoCAD属于CAD软件的一种,而SolidWorks属于CAD和CAE软件;2、CAD行业基...
2023-05-19 · 日常教程 · 214989
数组内存中的一片连续区域定义12int[7]math;bytes2[3]bytesTest;赋值1uint[5]public grade=[1,2,3,4,5];修改内容123functioninit2()public{ bytesTest[1]=0x6a6f;}返回数组1234...
2023-05-14 · 日常教程 · 68393
本篇内容主要讲解“Android设计模式SOLID六大原则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android设计模式SOLID六大原则是什么”吧!单一职责原则定义定义:确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这...
2023-05-06 · 日常教程 · 16954
在物理模拟中,固体对象通常分为1)刚体(Rigidbody),2)软体(Softbody),3)布料(Cloth)。从底层的物理原理来看,这三者并没有什么区别——纯刚体在自然界中是无法找到的,...
2023-04-27 · 日常教程 · 185149
小编给大家分享一下PHP中SOLID原则有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SOLID是MichaelFeathers推荐的便于记忆的首字母简写,它代表了RobertMartin命名的最重要的五个面对对象编...
2023-03-30 · 日常教程 · 165279
面向对象的SOLID原则 简介 缩写 全称 中文 S TheSingleResponsibilityPrinciple 单一责任原则 O TheOpenClosedPrinciple 开放封闭原则 L LiskovSubstitutionPrinciple 里氏替换原则 I TheInterface...
2023-02-17 · 日常教程 · 153997
摘要:本文以我们日常开发中经常碰到的一些技术/问题/场景作为切入点,示范如何运用设计模式来完成相关的实现。 本文分享自华为云社区《实践GoF的23种设计模式:SOLID原则(上)》,作者:元闰子。 前言 从1995年GoF提出23种设计模式到现在,25年过去了,设计模式依旧是软件领域的热门话题。设计...
2022-12-28 · 日常教程 · 300827