设计模式是对软件设计中普遍存在的各种问题,所提出的解决方案.
设计模式使程序具有:
- 代码重用性
- 可读性
- 可扩展性
- 可靠性
- 使程序呈现高内聚低耦合的特性
单一职责
对于类来说,即一个类只负责一项职责.
注意事项
- 降低类的复杂度,一个类只负责一项职责
- 提高类的可读性,可维护性
- 降低变更引起的风险
- 在通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则:只有类中方法数量足够少,可以在方法级别保持单一职责原则
代码
/**
* @Author: huangqh
* @Date: 2020/8/12
* @Note: 单一职责原则
*/
public class SingleResponsibility {
public static void main(String[] args) {
//不遵守单一职责原则____01
Vehicle vehicle = new Vehicle();
vehicle.run("car");
vehicle.run("airplane");
//支持单一职责原则,代码改动较大___02
RoadVehicle roadVehicle = new RoadVehicle();
SkyVehicle skyVehicle = new SkyVehicle();
roadVehicle.run("car");
skyVehicle.run("airplane");
//没有对原来的类进行大的修改,增加了方法.__03
VehicleRun vehicleRun = new VehicleRun();
vehicleRun.runSky("airplane");
}
}
/**
* ___01
* 交通工具类 Vehicle(违反单一职责原则)
* 1. run方法中,违反了单一职责原则
* 2. 根据交通工具运行方法不同,分解成不同类即可
*/
class Vehicle{
public void run (String vehicle){
System.out.println(vehicle +" running in road");
}
}
/**
* ___02
* 支持单一职责,代码改动大
*/
class RoadVehicle{
public void run (String vehicle){ System.out.println(vehicle + " running in road"); }
}
class SkyVehicle{
public void run (String vehicle){ System.out.println(vehicle+" fly in sky"); }
}
/**
* ___03
*虽然没有在类级别上单一职责原则,
*但是在方法级别上仍然是遵守单一职责原则
*/
class VehicleRun{
public void runRoad(String vehicle){ System.out.println(vehicle + "__run on the road"); }
public void runSky(String vehicle){ System.out.println(vehicle+ "__run in the sky"); }
}