1.單一職責原則
Single Responsibility Priciple 對於一個類而言,應該有一個引起它變化的原因。
要符合單一職責原則,那么就要將一個類中的各個功能分開。
比如圖片加載控件,需要將圖片的加載和緩存進行分開。
2.開閉原則
Open Close Principle 軟件中的對象對於擴展是開放的,但是對於修改是封閉的。也就是說軟件修改的時候,應該盡量用擴展進行變化,而不是通過修改已有的代碼。
要符合開閉原則,那么創建接口規范,然后實現接口中的方法來進行修改代碼。
比如圖片加載框架中的圖片的三級緩存,內存緩存,本地緩存。
3.里氏替換原則
Liskov Substitution Principle 所有引用某類的地方必須透明的使用其子類。也就是使用了多態。開閉原則和里氏替換原則是配合使用的,結合使用就是策略模式。
繼承的優點
①代碼重用,每個子類都有父類的方法和屬性
②子類和父類相似,但是又與父類有區別
③提高代碼的可擴展性
繼承的缺點
①繼承是侵入式的,只要繼承就必須擁有父類的所有的屬性和方法
②可能造成子類代碼冗余,缺少靈活性。
4.依賴倒置原則
Dependence Inversion Principle
①高層次的模塊不應該依賴低層次的模塊,應該依賴於其抽象。
②抽象不依賴於細節,細節依賴於抽象。
也就是在具體類中應該盡量使用類的抽象。就像圖片框架中共同使用ImageCache,而不使用其具體的實現類一樣。
5.接口隔離原則
Interface-Segregation Principle
某個類不應該依賴它不需要的接口,應該建立在最小接口上。
簡記: