首页 > 其他分享 >单一职责原则

单一职责原则

时间:2023-05-10 15:46:33浏览次数:38  
标签:String 原则 courseName study 单一 void public 职责

单一职责(Simple Responsibility Pinciple,SRP)是指不要存在多于一个导致类变更的原因。假设我们有一个 Class 负责两个职责,一旦发生需求变更,修改其中一个职责的逻辑代码,有可能会导致另一个职责的功能发生故障。这样一来,这个 Class 存在两个导致类变更的原因
下面依然是用代码的例子简单说明一下

点击查看代码
public class Course {
        public void study(String courseName) {
            if ("直播课".equals(courseName)) {
                System.out.println("不能快进");
            } else {
                System.out.println("可以任意的来回播放");
            }
        }
    }
调用
public static void main(String[] args) {
        Course course = new Course();
        course.study("直播课");
        course.study("录播课");
    }
可以看到Course 类承担了直播和录播的两个职责,如果这两个功能有一个需要修改,则会影响到另一个,正确的做法是,建两个类把功能(职责)隔离开来
点击查看代码
public class LiveCourse {
        public void study(String courseName) {
            System.out.println(courseName + "在直播");
        }
    }
    public class ReplayCourse {
        public void study(String courseName) {
            System.out.println("是录像");
        }
    }

public static void main(String[] args) {
        LiveCourse liveCourse = new LiveCourse();
        liveCourse.study("直播课");
        ReplayCourse replayCourse = new ReplayCourse();
        replayCourse.study("录播课");
    }
由此把这两个功能隔离开来,不过以上情况大多是理想情况,在实际开发过程中,有许许多多违背单一职责原则的地方,很典型的比如dao层,经常比如修改用户名称或地址功能,大多数情况下都是直接一个updateUserInfo(StringuserName,String... fileds)方法解决,我们在编码的过程中,既不要被设计原则束缚手脚,也要必要过于糟糕的设计导致的业务迭代困难

标签:String,原则,courseName,study,单一,void,public,职责
From: https://www.cnblogs.com/sakura114/p/17388176.html

相关文章

  • 依赖倒置原则
    依赖倒置原则(DependenceInversionPrinciple,DIP)是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象减少类与类之间的耦合性,提高代码的可读性和可维护性,并能够降低修改程序所造成的风险,这样说起来可能有点抽象,接下来以例子说明点击查看代码publicclasssizi......
  • 开闭原则
    开闭原则(Open-ClosedPrinciple,OCP)是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。实现开闭原则的核心思想就是面向抽象编程,现在我们思考一个场景,有一个课程类,课程类作为父类,有许多子类,比如java课程,python课程,前端课程...课程类中有价格属性定义,子类继承父类的价......
  • python控制windows 任务计划程序 获取具体单一任务
     importwin32com.clientTASK_ENUM_HIDDEN=1TASK_STATE={0:'Unknown',1:'Disabled',2:'Queued',3:'Ready',4:'Running'}scheduler=win32c......
  • 操作系统(3.3.6)--基于公平原则的调度算法
    1.保证调度算法保证处理机分配的公平性。如果在系统中有n个相同类型的进程同时运行,为公平起见,须保证每个进程都获得相同的处理机时间1/n。(1)跟踪计算每个进程已执行的处理时间;(2)计算每个进程应获得的处理机时间;(3)计算进程获得处理机时间的比率;(4)比较各进程获得处理机时间的比率......
  • Pytest用例设计原则
    用例设计原则文件名为test_*.py和*_test.py以test_开头的函数以Test开头的类,test_开头的方法,并且不能有__init__方法所有的package包必须有__init__文件断言使用assert常用断言assertxx判断xx为真assertnotxx判断xx不为真assertainb判断b包含aasserta==b......
  • 设计原则
    一单一职责原则职责:引起变化的原因SRP原则:一个对象(方法)只做一件事SRP原则的应用难点就是如何去分离职责1何时应该分离职责并不是所有职责都应该一一分离如果随着需求变化,职责总是同时变化的就不必分离创建xhr对象&发送xhr请求职责的变化轴线仅当他们确定会......
  • 禅道软件设计六大原则
    第一原则,长周期原则想尽一切办法让产品的生命周期大于团队的生命周期。每个产品都有自己的生命周期,每个团队也都有自己的生命周期,这是客观规律。但我总会觉得用户和客户因为信任选择使用禅道,我们就要为用户和客户负责,这是我放不下的责任和义务。一方面我努力赚钱,让团队持续发展,为我......
  • 禅道软件设计六大原则
    每一个产品都是为了解决某个问题而产生的,在诞生之初都是有自己的目标和原则的。只不过随着时间发展,产研团队慢慢更换,很多东西就慢慢丢掉了,改变了。所以在设计完善禅道项目管理软件的时候,我一直都比较恐慌,唯恐哪一天禅道也变成了自己不喜欢的样子。于是也有了一些自己固执地坚持,不......
  • 【二分查找】LeetCode 540. 有序数组中的单一元素
    题目链接540.有序数组中的单一元素思路假如不存在单个的元素,那么在奇数位置上总是成对元素的第一个元素,偶数位置上总是成对元素的第二个元素,但是如果加入了单个元素呢?我们可以看到在单个元素的左边这个特点没有变化,但是在单个元素的右边,奇数位置上总是成对元素的第二个元素,偶......
  • [设计模式]设计原则
    参考:https://zhuanlan.zhihu.com/p/24614363https://zhuanlan.zhihu.com/p/422737773https://zhuanlan.zhihu.com/p/141459645面向对象设计原则1、开闭原则:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。作用:1......