シングル責任原則の考慮事項と詳細
1.クラスの複雑さを軽減し、クラスが義務のためにのみ責任があります
可読性、保守性を向上させるために2。
3.変化によるリスクを軽減
通常の状況下で、我々は、単一責任の原則を遵守しなければならない4、唯一のロジックは、それがコードレベルで単一の義務の原則に違反することができ、十分に単純で、クラスメソッドのほんの数十分、我々は、メソッドレベルで単一責任の原則を維持することができます
初心者の言葉遣い
public class SingleResponsibility01 {
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 + "在公路上运行。。。。");
}
}
遵守するための単一責任の原則1.0言葉遣い
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. 但是这样做的改动很大,即将类分解,同时修改客户端
class RoadVehicle{
public void run(String vehicle) {
System.out.println(vehicle + "在地上运行....");
}
}
class AirVehicle{
public void run(String vehicle) {
System.out.println(vehicle + "在天上运行");
}
}
遵守するための単一責任の原則2.0言葉遣い
public class SingleRespnsibility3 {
public static void main(String[] args) {
Vihicle vihicle = new Vihicle();
vihicle.run("汽车");
vihicle.runAir("飞机");
vihicle.runWater("轮船");
}
}
//方式3的分析
//1. 这种修改方法没有对原来的类很大的修改,只是增加方法
//2. 这里虽然没有在类这个级别上遵守单一职责原则,但是在方法级别上,仍然是遵守单一职责
class Vihicle{
void run(String vehicle) {
System.out.println(vehicle + "在公路上运行。。。");
}
void runAir(String vehicle) {
System.out.println(vehicle + "在天空上运行。。。");
}
void runWater(String vehicle) {
System.out.println(vehicle + "在水里运行。。。");
}
}
3つの文言の分析
1.最初の方法は書くために
最初の書き込みは、一般的に使用される書き込み初心者です。シンプル書くが、飛行機が道路上で実行されていることは確かに正しいではありません。言い換えれば、今2つの関数のクラスを担当(runメソッド、道路上の走行航空機が道路上で実行されていない一方で、それは、義務であるので、航空機は他の任務を達成するのに必要)。
2. 2番目の言葉遣い
達成すべきセカンドシングルは、責任の原則を遵守して書かれていますが、別の責任を必要とするたびに、私たちはクラスを作成する必要があり、コストが高すぎます
3.第三言葉遣い
ときに、クラスメソッドはあまり適し十分な時間が3分の1の文言は、このレベルでの一つのクラスではなく、単一の方法で責任の原則を遵守して責任の原則に準拠していませんでしたが、