• 单一职责原则


    单一职责原则

    定义

    单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。

    简单来说,就是让一个类只干一部分事情,这样可以降低耦合性,提高复用性,提高可读性,降低由变更引起的风险。

    【普通代码】

    package pers.keafmd.accumulate.designmode.singleresponsibility;
    
    /**
     * Keafmd
     *
     * @ClassName: FreshmenSelected
     * @Description: 新生入学
     * @author: 牛哄哄的柯南
     * @date: 2022-06-27 19:39
     */
    public class FreshmenSelected {
    
        public void distributeBooks(){
            System.out.println("分发书籍。。。");
        }
    
        public void allocateDormitory(){
            System.out.println("分配宿舍。。。");
        }
    
        public static void main(String[] args) {
            System.out.println("开始安排新生入学工作:");
            FreshmenSelected freshmenSelected = new FreshmenSelected();
            freshmenSelected.distributeBooks();
            freshmenSelected.allocateDormitory();
            System.out.println("工作结束!");
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    效果:

    开始安排新生入学工作:
    分发书籍。。。
    分配宿舍。。。
    工作结束!
    
    Process finished with exit code 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【单一职责原则】

    image-20220627150017870

    StudyMembers

    package pers.keafmd.accumulate.designmode.singleresponsibility;
    
    /**
     * Keafmd
     *
     * @ClassName: StudyMembers
     * @Description: 学习委员
     * @author: 牛哄哄的柯南
     * @date: 2022-06-27 19:46
     */
    public class StudyMembers {
    
        public void distributeBooks(){
            System.out.println("学习委员负责:分发书籍。。。");
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    LifeCommittee

    package pers.keafmd.accumulate.designmode.singleresponsibility;
    
    /**
     * Keafmd
     *
     * @ClassName: LifeCommittee
     * @Description: 生活委员
     * @author: 牛哄哄的柯南
     * @date: 2022-06-27 19:47
     */
    public class LifeCommittee {
    
        public void allocateDormitory(){
            System.out.println("生活委员负责:分配宿舍。。。");
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    ClassMonitor

    package pers.keafmd.accumulate.designmode.singleresponsibility;
    
    /**
     * Keafmd
     *
     * @ClassName: ClassMonitor
     * @Description: 班长
     * @author: 牛哄哄的柯南
     * @date: 2022-06-27 19:46
     */
    public class ClassMonitor {
        private StudyMembers studyMembers;
        private LifeCommittee lifeCommittee;
    
        public ClassMonitor() {
            studyMembers = new StudyMembers();
            lifeCommittee = new LifeCommittee();
        }
    
        public void assignWork(){
            System.out.println("班长开始给不同的班干部分配工作,共同完成新生入学工作:");
            studyMembers.distributeBooks();
            lifeCommittee.allocateDormitory();
            System.out.println("工作结束!");
        }
    
        public static void main(String[] args) {
            System.out.println("开始安排新生入学工作:");
            ClassMonitor classMonitor = new ClassMonitor();
            classMonitor.assignWork();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    效果:

    开始安排新生入学工作:
    班长开始给不同的班干部分配工作,共同完成新生入学工作:
    学习委员负责:分发书籍。。。
    生活委员负责:分配宿舍。。。
    工作结束!
    
    Process finished with exit code 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    以上就是设单一职责原则的全部内容

    版权声明:
    原创博主:牛哄哄的柯南
    博主原文链接:https://keafmd.blog.csdn.net/
    个人博客链接:https://www.keafmd.top/

    看完如果对你有帮助,感谢点击下面的点赞支持!
    [哈哈][抱拳]

    在这里插入图片描述
    加油!

    共同努力!

    Keafmd

  • 相关阅读:
    java毕业设计网站基于JSP的在线调查问卷系统|投票[包运行成功]
    如何使用Docker构建前端项目
    运维:mysql常用的服务器状态命令
    搭建docker镜像仓库(一):使用registry搭建本地镜像仓库
    springboot 实现权限管理(一)
    02 | docker镜像文件制作
    零零信安-D&D数据泄露报警日报【第37期】
    用积木讲运维,这样的IT人太会了
    从了解到掌握 Spark 计算框架(二)RDD
    如何在 JavaScript 中使用媒体查询
  • 原文地址:https://blog.csdn.net/weixin_43883917/article/details/125484187