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

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

解释


46a9d80a6e05e4e3b19d57a0ee70bcdf.png


代码演示


demo1


public class SingleResponsibility {
    public static void main(String[] args) {
        Vehicle vehicle = new Vehicle();
        vehicle.run("摩托车");
        vehicle.run("汽车");
        vehicle.run("飞机");
    }
}
/**
 * 方式1
 * 这些写的问题:
 *   在方式1中,违反了单一原则
 *   解决方式:
 *         根据交通工具运行方法不同,分解成不同的类即可。
 */
class Vehicle {
    public void run(String vehicle){
        System.out.println(vehicle + " 在公路上运行...");
    }
}


demo2


public class SingleResponsibility2 {
    public static void main(String[] args) {
        RoadVehicle roadVehicle = new RoadVehicle();
        roadVehicle.run("摩托车");
        AirVehicle airVehicle = new AirVehicle();
        airVehicle.run("飞机");
        WaterVehicle waterVehicle = new WaterVehicle();
        waterVehicle.run("船");
    }
}
/**
 * 方案2:的分析
 *  //1.遵守单一职责原则
 *  //2.但是这样的改动很大,即将类分解,同时修改客户端
 *  //3.直接修改vehicle类,改动的代码比较少 = > 方案三
 */
class RoadVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在公路运行");
    }
}
class AirVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在天上运行");
    }
}
class WaterVehicle {
    public void run(String vehicle) {
        System.out.println(vehicle + "在水上运行");
    }
}


demo3


public class SingleResponsibility3 {
    public static void main(String[] args) {
        Vehicle2 vehicle2 = new Vehicle2();
        vehicle2.run("汽车");
        vehicle2.runAir("飞机");
        vehicle2.runWater("轮船");
    }
}
/**
 * 方案三:
 *   1.这种修改方法没有对原来的类做大的修改,只是增加方法
 *   2. 这里虽然没有在类上没有遵守单一职责原则,但是在方法上,仍然遵守单一职责原则
 */
class Vehicle2 {
    public void run(String vehicle){
        System.out.println(vehicle + " 在公路上运行...");
    }
    public void runAir(String vehicle){
        System.out.println(vehicle + " 在天空运行...");
    }
    public void runWater(String vehicle){
        System.out.println(vehicle + " 在水中运行...");
    }
}


总结


66ba272a0bfc97be54a5fa679e3d5482.png



相关文章
|
3月前
|
设计模式 存储 NoSQL
【设计模式】软件设计原则-单一职责原则
【1月更文挑战第12天】【设计模式】软件设计原则-单一职责原则
|
6月前
|
设计模式 Java
Java设计模式七大原则-单一职责原则
Java设计模式七大原则-单一职责原则
32 0
|
10月前
|
设计模式 XML JSON
【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则
【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则
66 0
|
设计模式 数据安全/隐私保护
设计模式六大原则(一)----单一职责原则(下)
设计模式六大原则(一)----单一职责原则(下)
|
设计模式
设计模式六大原则(一)----单一职责原则(上)
设计模式六大原则(一)----单一职责原则(上)
|
设计模式
设计模式七大原则——单一职责原则
设计模式七大原则——单一职责原则
设计模式七大原则——单一职责原则
|
设计模式 数据安全/隐私保护
设计模式六大原则(一)----单一职责原则
设计模式六大原则(一)----单一职责原则
131 0
设计模式六大原则(一)----单一职责原则
|
设计模式
大话设计模式--第三章 单一职责原则
其实这里主要讲了写代码的一个原则,那就是本文的标题, 单一职责原则。
77 0
|
设计模式
设计模式(三)之单一职责原则
单一职责原则:官方给的说法是,就一个类而言,应该仅有一个因其他变化的原因。 说白了就是,一个类只负责一项职责。 最简单也是最难的原则。难处在于对职责进行划分。单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异。 软件设计真正要做的内容,就是发现职责并把那些职责互相分离。单一职责原则可以使类的复杂度降低,实现什么职责都有清晰明确的定义;类的可读性提高,复杂度降低;可读性提高了,代码就更容易维护;变更(需求是肯定会变)引起的风险(包括测试的难度,以及需要测试的范围)降低。
95 0
设计模式(三)之单一职责原则
|
设计模式
【设计模式】软件设计七大原则 ( 单一职责原则 | 代码示例 )(二)
【设计模式】软件设计七大原则 ( 单一职责原则 | 代码示例 )(二)
112 0