1. 單一職責(zé)原則(Single responsibility principle)
概念:顧名思義,單一原則主要是說,應(yīng)該有且只有一個原因引起類的變化,一個類只負(fù)責(zé)一個職責(zé)。如果一個類有多個職責(zé),這些職責(zé)就耦合在了一起。當(dāng)一個職責(zé)發(fā)生變化時,可能會影響其它的職責(zé)。另外,多個職責(zé)耦合在一起會影響復(fù)用性。
此原則的核心是解耦和增強內(nèi)聚性。
2. 里氏替換原則 (Liskov Substitution Principle)
概念:任何類出現(xiàn)的地方子類都可以出現(xiàn)。
舉例:比如classA 有兩個方法 func1,func2,那么他的子類也必須實現(xiàn)這兩個方法,引用classA的地方也可以替換引用classA的子類實例
3.開閉原則(Open Close Principle)
概念:對擴(kuò)展開放,對修改關(guān)閉。對一個類或者程序進(jìn)行擴(kuò)展時候,應(yīng)該支持一個熱拔插效果,就是不改變原有類的前提下,可以進(jìn)行修改。
舉例:比如OC里面的category,還有繼承也可以實現(xiàn)開閉原則。
4.依賴倒置原則(Dependence Inversion Principle)
概念:這個原則是開閉原則的基礎(chǔ),具體內(nèi)容:針對接口編程,依賴于抽象而不依賴于具體。
舉例:比如,person 駕駛福特汽車,可以寫,drive:futeCar,但是person
也可以駕駛比亞迪汽車,這時候就應(yīng)該抽象出駕駛汽車這個接口,person依賴汽車駕駛接口,而不是依賴具體某一種汽車類型
5.接口隔離原則(Interface Segregation Principle)
概念:就是盡可能根據(jù)功能使用多個不同種類的接口,而不是把多種功能放在一個接口上。
這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。它還有另外一個意思是:降低類之間的耦合度。由此可見,其實設(shè)計模式就是從大型軟件架構(gòu)出發(fā)、便于升級和維護(hù)的軟件設(shè)計思想,它強調(diào)降低依賴,降低耦合。
6.迪米特法則,又稱最少知道原則(Demeter Principle)
概念:一個類調(diào)用另一個類實現(xiàn)時候,不需要知道另一個類的更多實現(xiàn),一個類應(yīng)該對自己需要耦合或調(diào)用的類知道的最少,只需要知道自己所需要使用的內(nèi)容,或者只知道需要調(diào)用的接口。