前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式原则:单一职责原则

设计模式原则:单一职责原则

作者头像
运维开发王义杰
发布2023-08-10 14:44:57
1670
发布2023-08-10 14:44:57
举报

单一职责原则

单一职责原则表示一个类或者一个方法应该只负责一项职责,也就是说,一个类或者一个方法只做一件事情。

单一职责原则可以降低类或者方法的复杂度,提高其可读性和可维护性。如果一个类或者一个方法负责多项职责,那么它就会变得臃肿和混乱,不利于理解和修改。而且,如果其中一个职责发生变化,就可能影响到其他的职责,导致系统出现错误和风险。

举个例子,假设我们有一个用户类 User,它有两个方法:save() 和 sendEmail()。save() 方法负责将用户信息保存到数据库中,sendEmail() 方法负责给用户发送邮件。这个类就违反了单一职责原则,因为它负责了两项不同的职责:数据持久化和邮件发送。这样的设计有以下几个缺点:

  • 类的职责不清晰,不符合高内聚的要求。
  • 类的复杂度增加,不利于阅读和理解。
  • 如果保存用户信息或者发送邮件的逻辑发生变化,就需要修改 User 类,可能会影响到另一个职责的正常运行。
  • 如果需要重用保存用户信息或者发送邮件的功能,就无法实现代码复用。

为了遵循单一职责原则,我们应该将 User 类拆分为两个类:UserRepository 和 UserMailer。UserRepository 负责将用户信息保存到数据库中,UserMailer 负责给用户发送邮件。这样的设计有以下几个优点:

  • 类的职责清晰,符合高内聚的要求。
  • 类的复杂度降低,利于阅读和理解。
  • 如果保存用户信息或者发送邮件的逻辑发生变化,只需要修改对应的类,不会影响到另一个职责的正常运行。
  • 如果需要重用保存用户信息或者发送邮件的功能,可以直接使用对应的类,实现代码复用。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 单一职责原则
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档