單一職責原則

2021-10-04 23:33:08 字數 1215 閱讀 4136

要點

乙個類只負責一項職責

舊版

public class singleresponsibility1 

}// 交通工具類

// 方式1

// 1. 在方式1 的run方法中,違反了單一職責原則

// 2. 解決的方案非常的簡單,根據交通工具執行方法不同,分解成不同類即可

class vehicle

}

結果

電單車 在公路上執行....

汽車 在公路上執行....

飛機 在公路上執行....

這時候我們發現飛機應該是在天上飛的,根據單一職責原則將vehicle類細分為roadvehicle類和airvehicle類

新版

public class singleresponsibility2 

}//方案2的分析

//1. 遵守單一職責原則

//2. 但是這樣做的改動很大,即將類分解,同時修改客戶端

class roadvehicle

}class airvehicle

}class watervehicle

}

結果

電單車公路執行

汽車公路執行

飛機天空執行

細節

public class singleresponsibility3 

}//方式3的分析

//1. 這種修改方法沒有對原來的類做大的修改,只是增加方法

//2. 這裡雖然沒有在類這個級別上遵守單一職責原則,但是在方法級別上,仍然是遵守單一職責

class vehicle

public void runair(string vehicle)

public void runwater(string vehicle)

}

結果

汽車 在公路上執行....

輪船 在水中行....

飛機 在天空上執行....

簡而言之

類中精細分工,自己的事情自己做,別人的事情我不做。

單一職責原則

定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t...

單一職責原則

單一職責原則 乙個類,只有乙個引起它變化的原因。應該只有乙個職責。每乙個職責都是變化的乙個軸線,如果乙個類有乙個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。當乙個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起,會影響復用性。例如 要實現邏輯和介面的分離。對於user類,裡...

單一職責原則

問題由來 一心二用,效率降低 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 專注做某件事情 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t2完成職責p2功能。這樣,當修改類t1...