IT评测·应用市场-qidao123.com技术社区

标题: 单一职责原则(SRP) [打印本页]

作者: 曂沅仴駦    时间: 2024-8-14 07:25
标题: 单一职责原则(SRP)
目次
  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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4