设计模式七大原则-单一职责原则SingleResponsibility

七大原则是在设计"设计模式"的时候需要用到的原则,它们的存在是为了保证设计模式达到以下几种目的:

1.代码重用性

2.可读性

3.可拓展性

4.可靠性(增加新的功能后,对原来的功能没有影响)

5.使程序呈现高内聚、低耦合的特性

单一职责:

对类来说,即一个类应该只负责一项职责(并不是只有一个方法,即关系"订单"的类不关心"员工")。如类A负责两个不同的职责:职责1,职责2.当职责1需求变更而改变A时,++可能造成职责2执行错误++,所以需要将类A的颗粒度分解为A1、A2。

例子:这里的Vehicle类颗粒度不够细,调用vehicle.run("飞机")时,业务逻辑是错误的。违背了单一职责原则。

java 复制代码
public class singleResponsibility {
    public static void main(String[] args) {

        Vehicle vehicle = new Vehicle();
        vehicle.run("汽车");
        vehicle.run("飞机");

    }

    //Java中的内部类需要一个外部类的实例来创建它的实例,除非它是一个静态内部类。
    static class Vehicle {

        void run (String vehicle){
            System.out.println(vehicle+"在路上跑");
        }


    }
}

目的:

1.降低类的复杂度,一个类只负责一项职责。

2.提高代码的可读性,可维护性、

3.降低变更引起的风险。

4.通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则,只有类中方法数量足够少,可以在方法级别保持单一职责原则。【也就是要根据实际情况权衡利弊,如果加类太浪费的话就只加几个方法就可以】

java 复制代码
public class singleResponsibility {
    public static void main(String[] args) {

        Vehicle2 vehicle2 = new Vehicle2();
        vehicle2.runOnroad("汽车");
        vehicle2.runOnair("飞机");

    }

    //Java中的内部类需要一个外部类的实例来创建它的实例,除非它是一个静态内部类。
    static class Vehicle1 {

        void run (String vehicle){
            System.out.println(vehicle+"在路上跑");
        }


    }

    static class Vehicle2 {

        void runOnroad (String vehicle){
            System.out.println(vehicle+"在路上跑");
        }

        void runOnair (String vehicle){
            System.out.println(vehicle+"在天上飞");
        }


    }
}
相关推荐
evans在进步15 小时前
Java 常用设计模式入门:建造者、工厂、单例、外观与代理
java·python·设计模式
字节跳动开源21 小时前
VisActor全新图可视化开源项目:VGraph
前端·设计模式·开源
码匠许师傅1 天前
【设计模式精讲】11.桥接模式(Bridge)
c++·设计模式·桥接模式·uml
学习星球2 天前
AI Agent 成本工程实战:从 OpenAI Codex 的 8 个“烧 Token“Bug 学起
人工智能·设计模式·微信小程序
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-46-责任链模式(业务实战篇)
java·设计模式·责任链模式·风控校验·servlet filter·spring interceptor·链式处理
码匠许师傅3 天前
【设计模式精讲】7.建造者模式(Builder)
设计模式·建造者模式
码匠许师傅3 天前
【设计模式精讲】6.抽象工厂(Abstract Factory)
c++·设计模式
workflower4 天前
人形机器人灵巧手产业链
人工智能·设计模式·机器人·云计算·无人机
Java后端的Ai之路4 天前
03、Python - 抽象工厂模式
开发语言·python·设计模式·抽象工厂模式·通用智慧
AI人工智能+电脑小能手4 天前
大白话说Java设计模式-45-解释器模式(源码剖析篇)
java·设计模式·解释器模式·源码分析·pattern·spel·javacc