单一职责原则

七种设计原则

为了提高代码的可重用性,可读性,可靠性,可扩展性,高内聚,低耦合,提出了23种设计模式。
而编写设计模式则需遵守七大原则
1)单一职责原则
2)接口隔离原则
3)依赖倒置原则
4)开闭原则
5)里氏替换原则
6)迪米特法则
7)组合及复用原则

单一职责原则

定义

即一个类负责一项职责。

示例

//单一职责原则示例1
public class SingleResponseblity {
    public static void main(String[] args) {
        Vehicle vehicle=new Vehicle();
        vehicle.run("小汽车");
        vehicle.run("摩托车");
        vehicle.run("飞机");//这个例子说明这个run方法违反了单一职责原则

    }
}

class Vehicle{
    public void run(String vehicle){
        System.out.println(vehicle+"在公路上疾驰.................");
    }
}
//单一职责原则示例二
/*
* 示例分析
* 1.满足了单一职责原则
* 2.改动太大
* 3.改进方案,直接修改vehicle类==》参考类3
* */

public class SingleResponseblity2 {
    public static void main(String[] args) {
        WaterVehicla wv=new WaterVehicla();
        RoadVehicla rv=new RoadVehicla();
        AirVehicla av=new AirVehicla();
        wv.run("轮船");
        rv.run("汽车");
        av.run("飞机");
    }
}

class WaterVehicla {
    public void run(String vehicle) {
        System.out.println(vehicle + "在水种上疾驰........");
    }
}
class RoadVehicla {
    public void run(String vehicle) {
        System.out.println(vehicle + "在公路上疾驰........");
    }
}
class AirVehicla {
    public void run(String vehicle) {
        System.out.println(vehicle + "在天空上疾驰........");
    }
}
//单一职责原则示例3
/*
*示例3分析
* 1.修改方法未对原来的类做大的修改。只是增加方法
* 2.虽然没有在类这个级别上遵守单一职责原则,但是在方法的级别上遵守了单一职责原则
*
* */
public class SingleResponseblity3 {
    public static void main(String[] args) {
        Vehicle2 vehicle2=new Vehicle2();
        vehicle2.run("汽车");
        vehicle2.runAir("飞机");
        vehicle2.runWater("轮船");
    }

}

class Vehicle2 {
    public void run(String vehicle) {
        System.out.println(vehicle + "在公路上疾驰.................");
    }
    public void runWater(String vehicle) {
        System.out.println(vehicle + "在水中疾驰.................");
    }
    public void runAir(String vehicle) {
        System.out.println(vehicle + "在空中疾驰.................");
    }
}

第三种示例虽未在类上遵守单一职责原则,但是在方法上遵守了单一职责原则,但是这种写法仅限于方法比较少及简单的类。

单一职责原则总结

1)一个类只负责一项职能,降低了类的复杂度
2)提高了类的可读性及可维护性
3)降低变更引起的风险
4)通常情况下我们都要遵守单一职责原则,但是在逻辑简单的类中,可在方法层遵守单一职责原则(复杂拆类,简单拆方法)

posted @ 2022-01-21 18:38  杨远  阅读(86)  评论(0编辑  收藏  举报