中国做的很好的食品网站,自己做网站不用WordPress,做公众号文章的网站,设计工作室一年收入基本介绍
对类来说的#xff0c;即一个类应该只负责一项职责。如类A负责两个不同的职责#xff0c;职责1#xff0c;职责2.当职责1需求变更而改变A时#xff0c;可能造成职责2执行错误#xff0c;所以需要将类A的粒度分解为A1#xff0c;A2
应用实例
方案1
public cl…基本介绍
对类来说的即一个类应该只负责一项职责。如类A负责两个不同的职责职责1职责2.当职责1需求变更而改变A时可能造成职责2执行错误所以需要将类A的粒度分解为A1A2
应用实例
方案1
public class SingleResponsibility1 {public static void main(String[] args) {Vehicle vehicle new Vehicle();vehicle.run(摩托车);vehicle.run(汽车);vehicle.run(飞机);}}// 交通工具类
// 方式1
// 1.在方式1的run方法种违反了单一职责原则
// 2.解决根据交通工具运行方法的不同分解成不同的嘞
class Vehicle {public void run(String vehicle){System.out.println(vehicle 在公路上运行);}
}
方案2
public class SingleResponsibility2 {public static void main(String[] args) {RoadVehicle roadVehicle new RoadVehicle();roadVehicle.run(摩托车);roadVehicle.run(汽车);AirVehicle airVehicle new AirVehicle();airVehicle.run(飞机);}}// 方案2
// 1.遵守了单一职责原则
// 2.但是这样做的改动很大即将类分解同时修改客户端
// 3.改进直接修改Vehicle改动代码比较少3
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 在水中上运行);}
}
方案3
/*** author zhupanlin* version 1.0* description: TODO* date 2024/4/9 9:46*/
public class SingleResponsibility3 {public static void main(String[] args) {Vehicle2 vehicle2 new Vehicle2();vehicle2.run(汽车);vehicle2.runAir(飞机);vehicle2.runWater(轮船);}}// 方式3
// 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 在水中上运行);}
}
单一职责原则注意事项和细节
降低类的复杂度一个类只负责一项职责。提高类的可读性可维护性降低变更引起的风险通常情况下我们应当遵守单一职责原则 只有逻辑足够简单才可以在代码级违反单一职责原则;只有类中方法数量足够少可以在方法级别保持单一职责原则.