美文网首页
设计模式原则之单一职责

设计模式原则之单一职责

作者: 代码之尖 | 来源:发表于2018-12-27 10:12 被阅读0次

单一职责:通俗地讲,即一个类只负责一项职责

问题:例如一个类(打印机P类)负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类P类,有可能导致原本正常运行的职责P2功能发生故障。


比如

class Animal{

    public void breathe(String animal){

        System.out.println(animal+"呼吸空气");

    }

}

public class Client{

    public static void main(String[] args){

        Animal animal = new Animal();

        animal.breathe("牛");

        animal.breathe("羊");

        animal.breathe("猪");

    }

}

运行结果:

牛呼吸空气

羊呼吸空气

猪呼吸空气


程序上线后,发现问题了,并不是所有的动物都呼吸空气的,比如鱼就是呼吸水的。修改时如果遵循单一职责原则,需要将Animal类细分为陆生动物类Terrestrial,水生动物Aquatic,代码如下:

class Terrestrial{

    public void breathe(String animal){

        System.out.println(animal+"呼吸空气");

    }

}

class Aquatic{

    public void breathe(String animal){

        System.out.println(animal+"呼吸水");

    }

}

public class Client{

    public static void main(String[] args){

        Terrestrial terrestrial = new Terrestrial();

        terrestrial.breathe("牛");

        terrestrial.breathe("羊");

        terrestrial.breathe("猪");

        Aquatic aquatic = new Aquatic();

        aquatic.breathe("鱼");

    }

}

运行结果:

牛呼吸空气

羊呼吸空气

猪呼吸空气

鱼呼吸水


遵循单一职责原的优点有:

可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;

提高类的可读性,提高系统的可维护性;

变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

需要说明的一点是单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。

相关文章

  • 设计模式6原则

    设计模式6原则 参考自csdn:设计模式之六大原则 1 单一职责原则 SRP 单一职责原则(Single Resp...

  • 面向对象编程的设计原则

    设计模式六大原则 单一职责原则 小话设计模式原则之:单一职责原则SRP 一个类,最好只负责一件事。理解单一职责原...

  • 设计模式之单一职责原则

    设计模式6大设计原则之单一职责原则 单一职则原则(SRP:Single Responsibility Princi...

  • 设计模式六大原则(一)----单一职责原则

    设计模式六大原则之【单一职则原则】 一、什么是单一职责原则 首先, 我们来看单一职责的定义. 单一职责原则,全称S...

  • 23种设计模式

    摘自《设计模式之禅》(第2版) 设计原则 单一职责原则(Single Responsibility Princip...

  • 设计模式概览

    1.设计模式概念 2.设计模式的六大原则 单一职责原则 单一职责原则(Single Responsibility ...

  • 设计模式之开闭原则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式之迪米特法则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式之依赖倒置原则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式之接口隔离原则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

网友评论

      本文标题:设计模式原则之单一职责

      本文链接:https://www.haomeiwen.com/subject/jbollqtx.html