博客
关于我
面向对象设计原则 单一职责原则(Single responsibility principle)
阅读量:398 次
发布时间:2019-03-05

本文共 825 字,大约阅读时间需要 2 分钟。

单一职责原则(SRP)是面向对象编程中的一个核心原则,它强调一个类或模块应该只有一个发生变化的原因。这个原则由罗伯特·C·马丁在《敏捷软件开发:原则、模式和实践》一书中提出了。

很多程序员可能对职责的概念有直观的理解,但真正理解单一职责原则却并不容易。职责的定义是类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就承担了多于一个的职责,这就违反了单一职责原则。

以数据访问层(DAL)类为例,假设我们有一个查询字段需要添加,以及一个删除操作需要删除部分子记录。从DAL的角度来看,这两个操作看起来像是两个不同的职责。然而,当我们从业务逻辑层(BLL)的角度来看时,DAL类的职责就变得清晰了——它的唯一职责是负责实体与数据库的交互。

单一职责原则的核心在于从外部调用者的角度来看一个类的职责。一个类的职责应该是一组紧密相关的功能。如果一个类承担了多于一个的职责,这些职责就会耦合在一起,导致设计的脆弱性。当一个职责发生变化时,可能会影响其他职责。同时,职责的耦合会降低类的复用性。

因此,我们通常不会将四种不同的数据库操作分别放置在四个不同的类中。我们应该让DAL类只负责数据库交互,而不是同时处理查询和删除操作。

单一职责原则并不是一条必须严格遵守的规则,而是要根据具体的场景和需求进行合理的分析。如果让一个类承担多于一个的职责,当且仅当这些职责是密切相关的,并且无法通过组合其他类来实现时,这种情况才是可行的。

很多程序员在实践中可能会忽略单一职责原则,认为遵守它会增加代码的复杂性。然而,真正理解单一职责原则的人都会意识到,它实际上是在追求代码的简洁性和可维护性。只有当一个类的职责明确单一时,我们才能确保代码的设计不会因为一个小的变化而导致大范围的影响。

单一职责原则的真正价值在于帮助我们建立清晰的类的边界。一个类的职责应该是从外部调用的角度来看的。如果我们能确保每个类都只有一个明确的职责,那么我们的代码设计就会更加稳健和可靠。

转载地址:http://awozz.baihongyu.com/

你可能感兴趣的文章
PostgreSQL 导入 .gz 备份文件
查看>>
PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
查看>>
PostgreSQL 新增数据返回自增ID
查看>>
postgresql 更新多列数据
查看>>
PostgreSQL 服务启动后停止
查看>>
PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
查看>>
PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
查看>>
Qt开发——简易调色板QPalette
查看>>
PostgreSQL-解决连接时遇到的乱码问题
查看>>
PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
查看>>
PostgreSQL9.1 双机部署配置(主备数据同步)
查看>>
Qt开发——简易网络浏览器(一)
查看>>
Qt开发——简易成绩登记系统
查看>>
Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
查看>>
Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
查看>>
SpringBoot中集成XXL-JOB分布式任务调度平台,轻量级、低侵入实现定时任务
查看>>
Postgresql中的表结构和数据同步/数据传输到Mysql
查看>>
Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
查看>>
SpringBoot中集成websocket后WebSocketServer中注入mapper为空
查看>>
postgreSQL入门命令
查看>>