单一职责原则

官方定义

单一职责原则(Single Responsibility Pronciple,SRP),有且仅有一个原因引起类的变化

顾名思义:一个类值负责一项职责。如类A负责连个不同的职责:职责1和职责2,当职责1需求变更二改变A时,可能会造成职责2执行错误,所以需要将类A的粒度分解为A1和A2

package danyisheji;

public class Animal {
    public static void main(String[] args) {
        new ForestAnimal().run("狮子");
        new AirAnimal().fly("老鹰");
    }


}

class ForestAnimal {
    public void run(String animal) {
        System.out.println(animal + "在森林中愉快地奔跑");
    }
}

class AirAnimal {
    public void fly(String animal) {
        System.out.println(animal + "在天空中愉快地飞翔");
    }
}

优势: 符合了业务逻辑,符合翻译职责原理劣势:改动幅度大,不光是要拆分类,客户端的代码也要进行大幅度的改动

解决方法二:

直接在原有类的基础上进行修改

package danyisheji;

public class Animal {
    public static void main(String[] args) {
        new animal().runForest("狮子");
        new animal().fly("老鹰");
    }


}

class  animal{
    public void runForest(String animal){
        System.out.println(animal + "在森林中愉快地奔跑");
    }
    public void fly(String animal){
        System.out.println(animal + "在天空中愉快地飞翔");
    }
}

优势:改动幅度小,包括客户端,完成了业务逻辑劣势:是否违反了单一职责原则?(方法级别的遵守)

单一职责原则:各司其职

注意事项和原则

  • 降低类的复杂度,一个类只负责一项职责(一个类职责少了,相应的复杂度低了)
  • 提高类的可读性以及课维护性(相应的复杂度降低了,代码量就会减少,可读性也就提高了,课维护性自然也就提高了)
  • 降低变更引起的风险(一个类职责越多,变更的可能性就会越大,变化带来的风险也就会越大)
  • 通常情况下,我们应该遵守单一职责原则(只有逻辑足够简单,才可以在代码中违反单一职责原则)
如何遵守单一执行原则

其实就是合理的职责分解,从业务出发,从需求出发,识别出同一个类型的职责
需要说明一点,单一职责原则不是面向对象语言特有的,只要是模块化的程序设计,都要遵守。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值