1.里氏替換原則:子類可以擴展父類的功能,但不能改變父類原有的功能(子類能夠替換父類對象,但程序邏輯不變)
2.合成復(fù)用原則:更多的使用has-a或contanis-a來替代繼承
3.開閉原則:對擴展開放,對修改關(guān)閉
4.依賴倒置原則:高層模塊不應(yīng)該依賴低層模塊,應(yīng)該都依賴其抽象,抽象不應(yīng)該依賴細節(jié),細節(jié)應(yīng)該依賴抽象
5.單一職責原則:不要存在多于一個導(dǎo)致類變更的原則。但這里我有一個問題---->這個單一功能職責是好,但問題是,會不會與一些代碼復(fù)用沖突?比方說這個方法,本來要統(tǒng)計一個月的數(shù)據(jù),又要統(tǒng)計一個季度的數(shù)據(jù),還要一年的數(shù)據(jù)。比方說里面邏輯是月度需要每日數(shù)據(jù)被簽署的才能統(tǒng)計,季度按月來,年度同理,這樣其實代碼是可以復(fù)用的,但因為一些細節(jié)不同,不應(yīng)該重寫吧?
6.迪米特原則:一個對象應(yīng)該對其他對象保持最少的“了解”(這不就是解耦碼?),比方說有一個外賣平臺,用戶點外賣,最好只需要和外賣平臺打交道,不需要與商家關(guān)聯(lián)---個人理解,不知道對不對
7.接口隔離原則:多個專門的接口,而不是使用單一的總接口。感覺有點像權(quán)限,將粗粒度向細粒度轉(zhuǎn)化,使得權(quán)限(接口的職責)更加明確,且可以更好管理用戶(調(diào)用者)的權(quán)限(功能)