美文网首页
设计模式-1(单一职责原则)

设计模式-1(单一职责原则)

作者: 冰菓_ | 来源:发表于2020-12-25 08:06 被阅读0次

    1.总结

    1. 可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
    2. 提高类的可读性,提高系统的可维护性;
    3. 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
    4. 需要说明的一点是单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则

    2.定义:

    定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责
    遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险

    3.代码说明:

    public class Demo1 {
        public static void main(String[] args) {
            Vehicle vehicle = new Vehicle();
            vehicle.run("火车");
            vehicle.run("飞机");
    
    
        }
    }
    
    //发现问题,飞机不会在路上运输,要改变代码
    
    class Vehicle {
        public void run(String vehicle) {
            System.out.println(vehicle + "在路上运输");
        }
    }
    
    //TODO 一个类一个方法 修改时如果遵循单一职责原则 问题类变多了,开销变大  
    
    class Vehicle1 {
        public void run(String vehicle) {
            System.out.println(vehicle + "在路上运输");
        }
    
    }
    
    class Vehicle2 {
        public void runWater(String vehicle) {
            System.out.println(vehicle + "在水上运输");
        }
    }
    
    // TODO 修改代码 但是会发生职责扩散,存在潜在风险
    
    class Vehicle3 {
        public void run(String vehicle) {
            if (vehicle != "飞机") {
                System.out.println(vehicle + "在路上运输");
            } else {
                System.out.println(vehicle + "在天空运输");
            }
        }
    }
    
    //TODO 改进:虽然也违背了单一职责原则,但在方法级别上却是符合单一职责原则的,因为它并没有动原来方法的代码
    
    class Vehicle4 {
        public void run(String vehicle) {
            System.out.println(vehicle + "在路上运输");
        }
    
        public void runWater(String vehicle) {
            System.out.println(vehicle + "在水上运输");
        }
    
    }
    

    相关文章

      网友评论

          本文标题:设计模式-1(单一职责原则)

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