单一职责原则(SRP)

打印 上一主题 下一主题

主题 1008|帖子 1008|积分 3024

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目次
  1、定义
  2、优点
  3、原则的紧张性
  4、 示例
  5、注意事项
    单一职责原则(Single Responsibility Principle, SRP)是面向对象设计中的一项紧张原则,属于 SOLID 原则之一。它的焦点头脑是:一个类应该只有一个引起它变化的缘故原由,换句话说,每个类应该仅有一个职责。
  1、定义

   每个类应该专注于完成一个功能或职责,避免将多个职责耦合在一起。
  2、优点

   (1)提高可维护性:职责单一使得类更简洁,修改时风险降低。
(2)加强可读性:更容易理解类的用途和功能。
(3)促进代码复用:独立的职责可被多个类或模块复用。
(4)低耦合:减少类之间的依赖,便于测试和扩展。
  3、原则的紧张性

   (1)可维护性
           当一个类有多个职责时,修改一个职责大概会影响到其他职责。遵循 SRP 可以使得类的修改和维护更简朴,降低出错的概率。
  (2)可读性
           单一职责的类通常更简洁、更易于理解,使得其他开发者可以快速掌握类的功能。
  (3)可测试性
           有着单一职责的类更容易进行单位测试,由于测试每个类时,只需关注其单一职责,避免了测试多个功能的复杂性。
  (4)低耦合
           遵循 SRP 的设计通常会导致低耦合的系统架构,使得系统的组件间依赖关系减少,从而提高系统的机动性。
  4、 示例

 假设有一个用户类,它同时包罗用户信息和发送电子邮件的功能
  1. public class User {
  2.        private String name;
  3.        private String email;
  4.        public User(String name, String email) {
  5.            this.name = name;
  6.            this.email = email;
  7.        }
  8.        public void sendEmail(String message) {
  9.            // 发送电子邮件的逻辑
  10.        }
  11.        // 其他用户相关的方法
  12.    }
复制代码
   根据单一职责原则,可以将发送邮件的功能抽象到一个单独的类中:
  1.    public class User {
  2.        private String name;
  3.        private String email;
  4.        public User(String name, String email) {
  5.            this.name = name;
  6.            this.email = email;
  7.        }
  8.        // 其他用户相关的方法
  9.    }
  10.    public class EmailService {
  11.        public void sendEmail(User user, String message) {
  12.            // 发送电子邮件的逻辑
  13.        }
  14.    }
复制代码
5、注意事项

    (1)应用单一职责原则时,保持合理的类的粒度,不要过度拆分类。
   (2)考虑职责的变更频率,如果某些功能很少变更,可以选择将其合并。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表