SOLID – Day S – 单一职责原则 (SRP)

solid - day s - 单一职责原则 (srp)

srp简介:
单一职责原则 (srp) 是五个 solid 原则之一,是一套编写更干净、更可持续的代码的指南。 srp 规定,一个类应该只有一个改变的理由,这意味着它应该只有一个职责或功能。遵循这个原则会让代码更容易理解、维护和测试。

srp 的目标:

简化维护: 由于类只有一个职责,识别和修复错误变得更加容易。职责清晰:每个类都有明确的目的,让代码更容易理解。改进的可测试性: 具有单一职责的类更容易隔离和测试。易于更改:特定职责的更改不会影响系统的其他部分。

不良做法示例(类):
这里我们有一个 userservice 类,它不仅仅做一件事:管理用户和发送通知。

class userservice {  createuser(user: user): void {    // logic to create user  }  deleteuser(userid: string): void {    // logic to delete user  }  notifyuser(userid: string, message: string): void {    // logic to notify user  }}

在这种方法中,userservice 类具有多种职责:管理用户和发送通知。这违反了建议零售价。

良好实践示例(课程):
要应用 srp,我们可以将职责分为不同的类别。

class userservice {  createuser(user: user): void {    // logic to create user  }  deleteuser(userid: string): void {    // logic to delete user  }}class notificationservice {  notifyuser(userid: string, message: string): void {    // logic to notify user  }}

现在,userservice 只处理用户创建和删除,而notificationservice 处理通知。每个类都有一个职责,遵循 srp。

不良实践示例(函数):
这里我们有一个函数可以做不止一件事:创建用户并发送通知。

function createuserandnotify(user: user, message: string): void {  // logic to create user  // logic to send notification}

在这种方法中,createuserandnotify 函数有多个职责:创建用户和发送通知。这违反了建议零售价。

良好实践示例(函数):
要应用 srp,我们可以将职责划分为不同的职能。

function createuser(user: user): void {  // logic to create user}function notifyuser(userid: string, message: string): void {  // logic to notify user}// using the separated functionscreateuser(newuser);notifyuser(newuser.id, 'welcome!');

现在,createuser函数只处理用户创建,而notifyuser处理通知。每个职能部门都有一个职责,遵循 srp。

react native 与 typescript 中的应用:
想象一下我们正在开发一个任务管理应用程序。我们可以通过将任务管理逻辑和通知逻辑分离到不同的类来应用srp。

不良做法示例(类):

class taskservice {  addtask(task: task): void {    // logic to add task  }  removetask(taskid: string): void {    // logic to remove task  }  notifytaskdue(taskid: string): void {    // logic to notify that the task is due  }}

良好实践示例(课程):

class taskservice {  addtask(task: task): void {    // logic to add task  }  removetask(taskid: string): void {    // logic to remove task  }}class tasknotificationservice {  notifytaskdue(taskid: string): void {    // logic to notify that the task is due  }}

不良实践示例(函数):

function addtaskandnotify(task: task): void {  // logic to add task  // logic to notify that the task is due}

良好实践示例(函数):

function addTask(task: Task): void {  // Logic to add task}function notifyTaskDue(taskId: string): void {  // Logic to notify that the task is due}// Using the separated functionsaddTask(newTask);notifyTaskDue(newTask.id);

通过职责划分,我们使应用程序更易于维护和扩展。

结论:
遵循单一职责原则有助于保持代码整洁、有组织且易于维护。在使用 typescript 的 react native 开发中应用 srp 会产生更加模块化和可测试的代码。永远记住让你的类和函数专注于单一职责,以获得这一原则的所有好处。

以上就是SOLID – Day S – 单一职责原则 (SRP)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1490571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Day/Days of Code:评估 MacBook 的开发能力
上一篇 2025年12月19日 13:16:38
React 要点:您可能缺少的功能
下一篇 2025年12月19日 13:16:54

相关推荐

  • es6标准入门和typescript入门教程

    ES6 和 TypeScript 都是提高 JavaScript 功能的语言,但用途不同。ES6 引入新特性,增强了 JavaScript 本身;TypeScript 提供类型检查和面向对象编程,更适合大型应用程序开发。入门 ES6 只需在支持的平台上编写代码即可,而 TypeScript 需要安装…

    用户投稿 2025年12月19日
    000
  • js如何调试

    JavaScript 调试涉及识别和修复代码错误,方法包括:利用浏览器开发人员工具,如控制台和源代码编辑器。设置断点以在特定代码行暂停执行,检查变量和堆栈跟踪。使用第三方调试器库进行链式调试、条件断点和日志记录。检查错误消息以找出错误类型和位置。启用框架或库的调试模式以获取额外信息。使用 Sourc…

    2025年12月19日
    000
  • js如何使用

    要在 HTML 中使用 JavaScript:创建一个包含 JavaScript 代码的 标签。将代码放置在 标签内。使用 type 属性指定 JavaScript 版本,推荐使用最新版本。可链接到外部 JavaScript 文件以组织代码。通过 HTML 事件或 onload 事件监听器触发 Ja…

    2025年12月19日
    000
  • typescript引l用类型

    TypeScript 中的引用类型允许变量引用另一块内存中的值,可使用 any 或 never 类型创建。引用类型只能赋值给引用类型,值通过 * 操作符访问。引用类型与原始类型不同,它存储的是值的引用,而不是实际值,影响值传递和内存管理。 TypeScript 中引用类型 TypeScript 中的…

    2025年12月19日
    100
  • typescript类型交集

    TypeScript 类型交集允许将多个类型合并成一个新类型,包含原始类型的共性。使用 & 运算符创建类型交集,例如:type CombinedType = Type1 & Type2;。类型交集优点包括代码重用、提高可读性、避免类型错误。例如,创建 Manager 类型继承 Per…

    2025年12月19日
    000
  • typescript常用技巧

    TypeScript 中常用的技巧包括:类型推断:根据值推断变量类型,减少类型注解。可选属性:使用 ? 运算符标记属性可以存在或不存在。联合类型:允许变量具有多种类型。函数重载:为同一函数定义不同参数列表的多个实现。类型别名:为现有类型创建新名称。接口:定义对象的形状,包括其属性和方法。类:支持面向…

    2025年12月19日
    000
  • typescript实战技巧

    以下是 TypeScript 实战技巧:类型推断:TypeScript 自动推断变量类型,简化代码编写。类型别名:创建可重用的类型,提高代码可读性。接口:定义对象类型,确保代码健壮性和一致性。类型保护:检查值的类型,安全地访问属性或调用方法。泛型:创建可用于不同类型数据的函数和类。装饰器:增强类的行…

    2025年12月19日
    000
  • typescript使用技巧大全

    TypeScript 技巧大全可以帮助开发者编写更优质的代码。具体技巧包括:使用明确的类型注解。利用接口定义契约。使用函数签名。利用泛型。使用模块和命名空间。利用 IDE 支持,linter 和测试框架。 TypeScript 使用技巧大全 TypeScript 是一种流行的 JavaScript …

    2025年12月19日
    000
  • 手机打开typescript文件教程

    使用手机打开 TypeScript 文件需要以下步骤:安装支持 TypeScript 语法的编辑器,例如 Code Editor 或 DroidEdit。创建或打开一个文件并确保其扩展名为 .ts。在编辑器的设置中启用 TypeScript 支持(如果需要)。使用编辑器的内置命令或集成工具运行或编译…

    2025年12月19日
    000
  • 手机运行typescript的方法

    可以通过以下方法在手机上运行 TypeScript:使用编译器(如 TypeScript Playground、TSLint)、使用框架(如 Capacitor、Ionic)或使用转换器(如 Babel)。编译器适用于快速测试,框架适用于原生移动应用程序开发,转换器适用于在移动浏览器中运行 Type…

    2025年12月19日
    000
  • typescript使用场景是什么

    TypeScript 适用于以下场景:大型 JavaScript 应用程序开发,提高代码质量和维护性。团队协作,提供类型检查和代码智能提示,减少潜在错误。现有 JavaScript 代码库重构,逐步提升代码质量。开发框架和库,提供可靠、可重用的 TypeScript 代码。移动和 Web 应用程序开…

    2025年12月19日
    000
  • typescript引用第三方js库教程

    可以引用第三方 JS 库的两种方法:使用类型定义文件 (.d.ts)使用三方包管理器(例如 npm) TypeScript引用第三方JS库教程 简介TypeScript是一种超集JavaScript的编译语言,它允许开发者将类型和类等面向对象特性添加到JavaScript代码中。本教程将介绍如何在T…

    2025年12月19日
    000
  • typescript的优点_typescript的优势和缺点分析

    TypeScript 由于提供类型安全、面向对象编程特性而受到欢迎。它的优点包括:及早发现错误的类型安全。支持现代面向对象编程概念。与原生 JavaScript 的兼容性和可扩展性。代码自动补全和错误检测等更好的开发体验。拥有活跃社区和广泛工具支持。 TypeScript 的优点 TypeScrip…

    2025年12月19日
    100
  • typescript能干嘛_typescript可以干嘛

    TypeScript 扩展了 JavaScript 功能,并提供了可选类型系统,可定义变量和函数类型,检测类型错误。它还支持面向对象编程、模块化、泛型和装饰器等特性。好处包括提高代码可靠性、可维护性,减少错误和增强开发人员体验。 TypeScript:功能介绍 TypeScript 是一种强类型的 …

    2025年12月19日
    000
  • typescript环境配置教程

    TypeScript 环境配置概述:安装 Node.js安装 TypeScript创建 TypeScript 项目编译 TypeScript 代码配置 IDE(可选) TypeScript 环境配置教程 概述 TypeScript 是一种建立在 JavaScript 之上的强类型语言,可帮助开发人员…

    2025年12月19日
    000
  • 怎么查typescript版本教程

    有四种查看 TypeScript 版本的方法:运行命令行命令 tsc -v使用 TypeScript IDE 中的“关于”选项查看 package.json 文件使用 npm 命令 npm list typescript -g –depth=0 查看全局安装版本 如何查看 TypeScr…

    2025年12月19日
    100
  • typescript常用的方法有哪些

    TypeScript 常用方法包括:Object.assign(): 复制或合并对象。Object.freeze(): 冻结对象使其不可更改。Object.keys(): 返回对象属性名称数组。Array.from(): 将可迭代对象转换为数组。Array.filter(): 筛选并返回满足条件的元…

    2025年12月19日
    000
  • typescript五大功能

    TypeScript 的主要优点包括:1. 静态类型检查,可检测编码错误;2. 类和接口,支持面向对象编程;3. 模块和命名空间,便于代码组织;4. 泛型,提升代码可重用性和灵活性;5. 代码生成,可与现有 JavaScript 应用程序整合。 TypeScript 的五大功能 TypeScript…

    2025年12月19日
    000
  • 前端如何用 JavaScript 导出 Excel 表格?

    js 导出 excel 想要在前端用 javascript 导出 excel,需要使用 html 表格作为导出数据的基础。 我们可以使用 tabletoexcel 函数来实现这个功能。此函数接收三个参数: table: 要导出的 html 表格元素或其 idname:希望在 excel 工作表中显示…

    2025年12月19日
    000
  • 网页聚光灯和翻页效果是如何实现的?

    深入剖析网页的聚光灯和翻页效果 有人好奇某网页的聚光灯和翻页效果是如何实现的,具体如下: 聚光灯效果 该效果利用了 CSS3 的 animation 属性,具体步骤如下: 为需要应用聚光灯效果的元素定义关键帧动画,设置其摇摆或闪烁动画。将动画名称指定给元素的动画属性,通过调整 animation-d…

    2025年12月19日
    100

发表回复

登录后才能评论
关注微信