开发几大原则理解(单一原则)

WPS JS宏实战:批量调整200个Word表格格式的避坑指南(附完整代码) 本文提供了一份详尽的WPS JS宏实战指南,针对批量调整大量Word表格格式的需求。文章深入解析了如何利用JS宏自动化设置字体、行距和边框,并重点解决了常见的“首行访问报错”等核心难题,附有可直接使用的完整代码,帮助用户显著提升文档处理效率。 阅读详情

网上看这张图片归纳挺好的:
这里写图片描述
单一原则(Single Responsibility Principle)
单一职责原则的英文名称是 Single Responsibility Principle,简称是 SPR,简单地说就是一个类只做一件事,这个设计原则备受争议却又极其重要。只要你想和别人争执、怄气或者是吵架,这个原则是屡试不爽的。因为单一职责的划分界限并不是如马路上的行车道那么清晰,很多时候都是需要个人经验来界定。当然,最大的问题就是对职责的定义,什么是类的职责,以及怎么划分类的职责。这跟我们社会分工一样, 一些人干这个, 另一些人干那个,只有大家都这样做了, 我们的社会才更和谐。

试想一下,如果你遵守了这个原则,那么你的类就会划分的很细,每个类都有比较单一的职责,这不就是高内聚、低耦合么!当然,如何界定类的职责就需要你的个人经验了。

当然,软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离,就是抽象的能力。其实要去判断是否应该分离出类来,也不难,那就是如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。

/**
 * @ClassName: OrderSend
 * @Description: 指令发送接口
 * @author: jyj
 * @date: 2017年6月7日 下午10:47:49
 */
public interface OrderSend
{
    String readDeviceName();

    String readDeviceMacAddress();
}

我们可以看到,OrderSend接口中定义了两个方法,分别是读取设备名称和读取设备mac地址。它的职责很单一,这样在需要修改执行指令发送的相关代码时,只需要修改实现 OrderSend接口的类,而不会影响其他类的代码。如果某个类的职责包含有执行指令发送、指令解析等,那么在你修改某处代码时就必须谨慎,以免修改的代码影响了其它的功能。当你修改的代码能够基本上不影响其他功能。这就一定程度上保证了代码的可维护性。注意,单一职责原则并不是一个类只能有一个函数,而是说这个类中的函数所做的工作是高度相关的,也就是高内聚。

基本判断原则, 就是一个特定的类,当确认以后, 它的责任就确定了,不能增加它行为以外的功能。 例如一般我们定义 API 接口的时候,如果这个接口干了很多事情, 就是一些隐含的事情,我们就认为它设计没有遵循单一原则。
优点

类的复杂性降低,实现什么职责都有清晰明确的定义。

可读性提高,复杂性降低,那当然可读性提高了。

可维护性提高,可读性提高了,那当然更容易维护了。

变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助。

下次继续

在 SAP S/4HANA 里把 OData Client Proxy 用顺手,借助 Service Consumption Model 2.0 提前打通远程 OData 调用 摘要:本文探讨了在SAP S/4HANA集成开发中调用外部OData服务的解决方案。传统ABAP代码直接调用方式存在诸多不便,而OData Client Proxy提供了更稳定的途径。文章详细介绍了如何通过Service Consumption Model 2.0在SAP BTP生成模型类,并将其移植到SAP S/4HANA进行适配改造,最终注册为可用的OData Proxy Client。该方法适用于较新版本的SAP S/4HANA系统,通过源码替换实现模型转换,为系统集成提供了高效的类型安全调用方案。 阅读详情

相关推荐

【详细】芯片设计全流程(包括每个流程需要用到的工具以及需要参与的工作人员)

一颗芯片的诞生经历了设计、制造和测试(分别对应集成电路产业链的设计业、制造业和封测业),而每一步都包含了复杂的步骤和流程。 图0-1 集成电路产业链 现在,我们重点介绍芯片设计的全流程以及每个流程需要用到的设计工具和需要参与的工作人员。 一、IC设计分类 首先对IC设计的分类做个介绍,如图1-1所示。 图1-1 IC设计分类 如图1-1所示,IC设计可以粗分为数字IC设计和射频/模拟IC设计,数字IC设计又可分为ASIC设计和FPGA/CPLD设计,此外还有一部分IC设计.

qq_36045093的博客 8万+

设计模式选择题复习

1.在UML提供的图中,( )用于描述系统与外部系统及用户之间的交互 A.用例图 B.类图 C.对象图 D.部署图 2.在UML提供的图中,( )用于按时间顺序描述对象之间的交互。 A、对象图 B、状态图 C、活动图 D、时序图 3.以下关于类成员的可见性叙述错误的是( ) A、可见性为public时,类内和类外可以使用 B、可见性为protected时,类内及子类可以使用 C、可见性为private时,类内及类外皆不可以使用 D、可见性为public或protected时,子类皆可以使用 4

qq_51481704的博客 8363

手把手教你配置MAX96712解串器:从I2C地址分配到PWM帧同步

本文详细解析了MAX96712解串器在自动驾驶视觉链路中的核心配置流程。从I2C地址分配、GMSL2数据流映射到实现多摄像头精准同步的PWM帧同步触发,手把手指导工程师构建高可靠性的图像传输系统,并提供了实用的Linux调试技巧与问题排查思路。

weixin_29297127的博客 924

函数设计的两个原则(单一出口、一专多能)和实例

函数设计应该像模块设计一样,讲究接口和封装。函数的命名应该让使用函数的程序员见名知意,函数应该封装成简单易用的形式,而且当函数内部实现算法变化时,函数还能够保持接口的稳定性。 下面的例子来源于浙江大学翁恺老师的《C语言程序设计进阶》中的线性搜索算法。 首先看这样一个搜索算法,实现的功能是在一个数组中找出需要的数字,并且返回该数字在数组中的位置;找不到,则返回-1。 int search(i...

吉大秦少游 8268

基于单片机控制的开关电源设计

采用开关电源技术和MCU模块,凭借可靠性高、易于调适的特点,可以更高效地发挥出二者的优势,从而实现更好的组合。stm32的起动模式是通过Boot0和Boot1两个管脚的高低电平来决定的,当stm32被供电之后,这两个管脚的电平。在 VCC上,键盘的一头(列线)被连接到 VCC上,而在“0”的编程输出中,则用来进。,在开关管打开的情况下,由输入电力供给电流,感应装置存储   Buck变换器是一种非隔离式的电压转换器[10]整流电路对输入电压进行整流,再经过滤波电路,即Dc电压是直流/直流变换器的直流输入。

QQ1694456187的博客 2308

VOS3000线路对接、路由配置与路由分析操作教程

通过本教程,你应该已经掌握了VOS3000的线路对接、路由配置和路由分析的基本操作。添加备用路由:为常用前缀添加备用路由,确保在主路由失效时呼叫仍能正常进行。进入线路管理:点击“系统管理” -> “线路管理” -> “添加线路”。查看日志:在“系统日志”中查看路由选择情况,确保路由配置正确。失败原因:查看失败呼叫的原因(如“无应答”、“线路忙”等)。线路选择:选择之前添加的线路(如“供应商A”)。保存并启用:填写完毕后,点击“保存”并启用路由。路由名称:自定义一个名称(如“路由A”)。

AI_wx_3307623172的博客 2973

单一出口原则

值得赞赏的是作者这里不仅解释了他们推崇方法的好处,也提到了为什么单一出口原则得以被提出的原因:保持单一出口原则的一个主要原因是在函数的结尾可以做统一的清理工作,特别对于C语言当中更应该如此。最近在读《重构——改善既有代码的设计》这本书,在 9.4 Remove Control Flag(移除控制标记)这一节,作者提到了“单一入口”和“单一出口”这两个原则,并对“单一出口”原则批驳了一番,让我想起了一个遥远的故事。在写这篇笔记的前后,我的观点是有一些细微的变化的。有关“单一出口原则”的更多内容。

any__fly的博客 630

STC8H单片机ADC实战:从读取电位器到串口绘图,12位精度玩起来

本文详细介绍了STC8H单片机的ADC功能实战应用,从读取电位器到串口绘图,展示了12位精度的实现方法。通过硬件连接、代码配置、串口数据传输及高级优化技巧,帮助开发者快速掌握ADC模块的使用,适用于各种传感器数据采集和信号处理场景。

weixin_28278377的博客 344

接口设计六大原则

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33841503的博客 2022

【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 823

【生产实践】PostgreSQL高可用Patroni安装(超详细已踩坑)

一 安装Patroni 0 Patroni 对Python的版本要求 我安装的是Patroni最新版本 :4.0.3,Patroni 对Python 版本有要求,没有具体的版本矩阵,但是根据每个版本发布信息可以得到以下信息 Patroni 4.0 需要 Python 3.8 以上(可以根据下面发布版本信息推理出) Version 3.0.2 Version 3.0.2 dropped support of Python older than 3.6. 版本3.0.2不再支持3.6版本以下的P

DBA之路的博客 1741

js 应用的几大原则 及 应用实例

js 应用的几大原则 及 应用实例

m0_51244077的博客 1367

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

设计模式的几大原则

设计模式原则,其实就是程序员在编程时,应当遵守的原则, 也是各种设计模式的基础(即: 设计模式为什么这样设计的依据)设计模式常用的六大原则有:①单一职责原则②里氏替换原则③依赖倒转(倒置)原则④接口隔离原则⑤迪米特法则⑥开闭原则什么是单一职责原则呢?

qq_45726327的博客 3221

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

牢记面向对象五大原则 SOLID

良好的单一职责设计可以帮助实现接口隔离,而开闭原则的实现通常依赖于依赖倒置原则。在实际开发中,遵循 SOLID 原则可以让我们在需求变化时减少改动成本,提升代码质量,同时也让测试和重构更加轻松。然而,遵守设计原则并不意味着过度设计。开发人员需要在项目的复杂性、规模和团队经验之间找到平衡,在遵循原则的同时,确保代码的实际可用性和效率。设计优雅的系统不仅是技术能力的体现,更是对团队和业务的责任。

Mylqs的博客 997

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

程序员应该遵守的开发原则之单一职责

单一职责原则(Single Responsibility Principle, SRP)是面向对象设计中的一个核心原则,它倡导简洁与清晰的设计哲学。简而言之,这一原则主张一个类应当仅负责一项任务或功能,即“一个类,一个职责”。这种设计思路旨在减少类之间的耦合度,提升代码的可维护性、可读性和复用性。想象一下,如果你是一位厨师,在厨房中既负责烹饪又负责打扫,那么当你烹饪的食谱有所变动时(比如需要新的调料),可能会影响到你打扫厨房的习惯或效率,因为这两个职责在无形中已经相互交织。

TP000的博客 2549

C++ 面向对象五大原则

一,面向对象五大原则 1.1,理解设计模式与设计原则 软件设计原则:原则为我们提供指南,它告诉我们什么是对的,什么是错的。它不会告诉我们如何解决问题。它仅仅给出一些准则,以便我们可以设计好的软件,避免不良的设计。 软件设计模式:模式是在软件开发过程中总结得出的一些可重用的解决方案,它能解决一些实际的问题。一些常见的模式,比如工厂模式、单例模式等等。 封装、继承、多态只...

个人技术博客 5794

面向对象的特性及五大原则

Table of Contents 概述 面向对象的特点 继承 组合 面向对象的五大原则 单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口分离原则 迪米特法则 概述 面向对象的三大特特点是"封装、"多态"、"继承",很多人认为组合,也应该是其中一个重要的特点,这样的话就是四大特点。。面向对象的五大原则分别是是"单一职责原则"、"开放封闭原则"、"里氏替换原则"...

topdeveloperr的博客 1908

设计模式-00 设计模式简介之几大原则

设计模式相关的浅解,并运用modern cpp 来是实现,描述相关设计模式

jxusthusiwen的专栏 1170

关于设计模式五大原则

什么是设计模式 设计模式是一种应对多场景或者复杂的业务场景的一种工具,有利于代码的复用/维护,系统模块的组织和设计的沟通 设计模式五大原则 开闭原则 开闭原则(OCP: open closed principle) - 对拓展开放、对修改关闭 开闭原则的设计思路是:在我们系统已有的场景下,对于需要拓展的功能进行开放,拒绝直接的功能修改 exm: 假如现在有PUBG和LOL两个游戏,我们需要在LOL弹出一个充值折扣的功能,PUBG需要一个高亮的功能(功能随意,只是为了demo的理解而写) 首先看一个一下就就能

weixin_48391468的博客 2193

Java 面向对象开发的五大原则

概览:SOLID S-SingleResponsibility-单一职责原则 O-OpenClose-开闭原则 L-LiskovSubstituion-里氏替换原则 I-InterfaceSegregation-接口隔离原则 D-DependencyInversion-依赖倒置原则

liyang_self的博客 773

Java三大特性、五大原则

三大特性:封装,继承,多态 透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础. 三大特性是:封装,继承,多态 所谓封装: 也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据...

liujian_1994的博客 2925

面向对象编程的五大原则例子分析

在应用开发的过程中,感觉最快乐也是最痛苦的莫过于优化、重构代码。在版本不断地迭代更新上线中,我们不但要保证功能能正常运行,而已我们的代码需要保证健壮性、稳定性、拓展性。然而在我们不断接受新的知识过程中,我们对代码的理解也会越来越深刻,从而出现了优化,甚至是重构代码的过程。在此之前我们更需要知道面向对象编程的五大原则。

qq_435559203的博客 2895

设计原则-单一原则SRP

在这个类中所形成的相关的方法之间的关联度上,两者之间的关系是十分的密切的时候,是可以去放置在这个同一个类中的,当我们,去根据业务之间的相关的关系和实现的时候,我们发现两个的关系是拆分起来进行相关的方法的实现是更加的方便的时候,我们就可以去对这个类中的方法去分解开来,还有前面所述的命名方法。这个原则不仅适用于类的设计,还可以扩展到其他设计方面。在我们初次学习面向对象的时候,这个代码是在我们眼中感觉十分的正确的,而且这段代码的开发是十分的方便的,使用idea上的相关的生成器就可以去简化我们开发的相关的时间的。

开源驱动,创造价值;坦诚清晰,快速失败;让复杂可计算。 1096

面向对象三大特性五大原则最通俗理解

** 三大特性五大原则最通俗理解 ** 非标题党,文案有些长但容易理解,请君慢慢看,看完还不懂请来打我。。。 让我们根据一个实际生活中的例子来具体说明: 假设你是厂二代,继承了家里一个厂子,专门生产热水壶的,这种热水壶有这些主要特点: 1、由壶体和壶盖组成; 2、颜色是银白色的; 3、有一个开关可以控制启动烧水; 4、水烧开后会发出鸣叫声音报警。 按照面向对象的设计方法,我们把这个热水壶称为这个工厂的一"类"产品,简称为“热水壶类”,它具有同样的4个特点: 1、有两个成员变量:壶体和壶盖; 2、有一个成员属

西北偏北的博客 459

Unity3D 设计模式几大原则详解

第一则:单一职责原则 1.定义:什么是单一职责原则呢? 我个人的理解就是一个类值负责一个职责,或者通俗的说就是一个类只实现一个功能,也就是不存在多于一个导致类进行变更的原因! 2.针对的问题:有就是说什么时候才会产生这种问题呢? 例如:原本有一个类叫PlayerControl,然后这个类有两个功能或者说职责,移动职责和攻击职责这两个职责,然而当我们需要修改移动的时候,可能会导致原本符合要求且

BattleTiger的博客 1488
上一篇: 在线api汇总,应该对你开发有帮助
下一篇: PL/SQL Developer 导入导出数据库
差点九零后
博客等级 码龄15年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值