Python面向?qū)ο缶幊桃话阕裱韵略瓌t:單一職責(zé)原則、里氏替換原則、接口隔離原則、依賴倒置原則、開閉原則、迪米特法則、組合/聚合復(fù)用原則。
python面向?qū)ο笤O(shè)計原則
(1)單一職責(zé)原則:一個類一般只負(fù)責(zé)一項職責(zé),以提高類的可讀性,提高系統(tǒng)的可維護(hù)性,減少變更引起的風(fēng)險,提高內(nèi)聚力。
(2)里氏替換原則:在超類存在的地方,子類是可以替換的。在軟件中將一個基類對象替換為其子類對象時,程序不會產(chǎn)生任何錯誤和異常,反之則不然,所以在程序中盡量使用基類類型來定義對象,并在運(yùn)行時確定其子類類型,使用子類對象來替換父類對象。
(3)接口隔離原則:應(yīng)該提供單一接口,不要創(chuàng)建龐大的接口,要為每個類創(chuàng)建一個專用的接口,而不是試圖創(chuàng)建一個非常龐大的接口供所有依賴它的類調(diào)用。
專用的接口要比綜合的接口更靈活,以提高系統(tǒng)的靈活性和可維護(hù)性。
(4)依賴倒置原則:盡量依賴抽象的實現(xiàn),而不是依賴具體的實現(xiàn),不能有循環(huán)的依賴。
使用依賴倒置原則可以減少類之間的耦合,提高系統(tǒng)的穩(wěn)定性,減少并行開發(fā)帶來的風(fēng)險,提高代碼的可讀性和可維護(hù)性。
(5)開閉原則:面向擴(kuò)展開放,面向修改關(guān)閉。
(6)迪米特法則:又叫較少知識原則,一個軟件實體應(yīng)當(dāng)盡可能少地與其他實體發(fā)生相互作用。
(7)組合/聚合復(fù)用原則:盡量使用組合/聚合達(dá)到復(fù)用,盡量少用繼承。