单一职责原则(SIP:Single Responsibility Principle)

1、描述

一个类(方法)只负责一个功能领域中的相应职责; 就一个类而言,应该只有一个引起它变化的原因。

2、特点

  • 一个类不能太“累”;
  • 复用性高;
  • 高内聚、低耦合。

3、优点

  • 降低类的复杂度,一个类只负责一个职责,代码逻辑简单清晰;
  • 提高类的可读性,提高系统的可维护性;
  • 降低变更引起的风险。变更是必然的,如果单一职责原则遵守得好,当修改一个功能的时候可以显著降低对其他功能的影响。

4、注意

需要说明的一点是,单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。比如说单一职责原则不仅仅适用于类,还适用于方法。 通常情况下,都应当遵守单依职责原则,只有逻辑足够简单,才可以违反代码的单一职责原则:只有类中的方法足够少,可以在方法级别保持单一职责原则

5、示例 

public class Animal {
    public void walk(String animalName) {
        System.out.println(animalName + "会走");
    }

    public void fly(String animalName) {
        System.out.println(animalName + "会飞");
    }

    public void swim(String animalName) {
        System.out.println(animalName + "会游泳");
    }
}

人是动物,但是人不会飞,这个fly的方法多余;

鸟也是动物,会飞,也不会游泳,所以swim和fly的方法多余;

鱼也是动物,会游泳,但不会走,也不会非,所以walk和swim的方法多余;

所以Animal这样写明显违反了单一职责原则;

现将这些行为明确分配到各自的活动:

public class Person {
    public void walk() {
       System.out.println(animalName + "会走");
    }
}

public class Bird {
    public void fly() {
       System.out.println(animalName + "会飞");
    }
}

public class Fish {
    public void swim() {
       System.out.println(animalName + "会游泳");
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值