news 2026/5/11 1:57:38

软件设计原则之SRP单一职责原则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
软件设计原则之SRP单一职责原则

如大家所熟知的,在程序开发过程中, 每位程序员都应该了解许多重要的原则。就如经典的面向对象三原则:封装,继承,多态。

(SRP) 单一职责原则 Single Responsibility Principle

核心原则

一个类或模块,应该仅有一个引起它变化的原因。

场景描述

当设计一个账户信息类时,通常会记录账号,密码,电话,地址等各类信息。一个朴素的设计,就是将这些字段都直接设计到 UserInfo 类中。

#include <string> class UserInfo { private: std::string username; std::string password; std::string phone; std::string address; public: // get & set };

问题暴露

当项目不断开发过程中,发现每个用户可能会有多个地址,因此需要使用数组等方式来存储。并且在后续开发中可能需要将某个地址标注为默认,添加地址标签,甚至还需要将多个地址进行排序等操作。

随着问题的不断增多,我们发现 “地址” 更应该是一个独立的内容,应该作为一个独立的模块进行开发,并组合到 User 类中。

#include <list> #include <string> class AddressInfo { private: std::string phone; std::string address; public: // get & set }; class UserInfo { private: std::string username; std::string password; std::list<AddressInfo> addressInfoList; public: // get & set };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 1:55:32

物联网安全:从数字风险到物理威胁的范式转移与防御实践

1. 生死攸关&#xff1a;为什么我们必须严肃对待物联网安全漏洞如果你和我一样&#xff0c;每天关注科技新闻&#xff0c;可能已经对那些层出不穷的数据泄露头条感到麻木了。过去几年&#xff0c;从大型零售商到社交媒体平台&#xff0c;从医疗机构到政府机构&#xff0c;似乎每…

作者头像 李华
网站建设 2026/5/11 1:51:36

从火星探索到物联网安全:嵌入式系统大会揭示技术趋势与社区价值

1. 从世界杯到嵌入式系统&#xff1a;为什么巴西值得技术人关注&#xff1f;2014年夏天&#xff0c;全世界的目光都聚焦在巴西的绿茵场上。当世界杯的喧嚣逐渐散去&#xff0c;里约奥运会的筹备尚在两年之后&#xff0c;一个自然而然的问题浮现在许多国际工程师和科技从业者的脑…

作者头像 李华
网站建设 2026/5/11 1:48:35

Cursor编辑器AI编程规则引擎:定制化代码生成与团队协作规范

1. 项目概述&#xff1a;一个为 Cursor 编辑器定制的规则引擎如果你和我一样&#xff0c;深度依赖 Cursor 这款 AI 驱动的代码编辑器&#xff0c;那你一定遇到过这样的场景&#xff1a;你希望 AI 助手在生成代码、重构或回答问题时&#xff0c;能严格遵循你或你团队特定的编码规…

作者头像 李华
网站建设 2026/5/11 1:47:35

Memorix:Node.js内存数据管理与实时同步库的设计与实践

1. 项目概述&#xff1a;Memorix&#xff0c;一个为现代应用而生的内存数据管理方案在构建现代Web应用、微服务或实时数据处理系统时&#xff0c;我们常常面临一个经典难题&#xff1a;如何高效、可靠地管理那些需要快速访问的“热数据”&#xff1f;你可能会立刻想到Redis&…

作者头像 李华
网站建设 2026/5/11 1:46:02

iPhone卡logo恢复数据

“iPhone卡在苹果Logo界面”&#xff0c;这可能是许多苹果用户手机遭遇的“噩梦”。屏幕亮起&#xff0c;一枚静止的苹果Logo下&#xff0c;是无尽的等待与无法响应的绝望。面对这种系统级故障&#xff0c;很多人第一时间想到的是“刷机”或“返厂”&#xff0c;试图修复设备。…

作者头像 李华