面向對象設計(Object-Oriented Design,OOD)方法是面向對象程序設計方法中一個環節。其主要作用是對分析模型進行整理,生成設計模型提供給OOP作為開發依據。OOD包括:架構設計、用例設計、子系統設計、類設計等
SOLID(單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉)是面向對象設計的五個基本原則,由Robert C. Martin提出。充分掌握五個原則并運用到軟件設計開發中,可以使軟件易于維護,方便擴展。
1. 單一職責原則(SRP)
單一功能原則(Single responsibility principle)規定每個類都應該有一個單一的功能,并且該功能應該由這個類完全封裝起來。所有它的(這個類的)服務都應該嚴密的和該功能平行(功能平行,意味著沒有依賴)。
簡單講就是一個類或者一個功能模塊 僅僅有一個功能,修改這個類或者模塊的原因只有一個。
2. 開放封閉原則(OCP)
軟件實體應該是可擴展,而不可修改的。也就是說,對擴展是開放的,而對修改是封閉的
可以通過類的繼承,多態實現。
3. 里氏替換原則(LSP)
任何基類可以出現的地方,子類一定可以出現。 LSP是繼承復用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被復用,而衍生類也能夠在基類的基礎上增加新的行為。
4. 接口隔離原則(ISP)
接口隔離原則(英語:interface-segregation principles, 縮寫:ISP)指明客戶(client)應該不依賴于它不使用的方法。[1]接口隔離原則(ISP)拆分非常龐大臃腫的接口成為更小的和更具體的接口,這樣客戶將會只需要知道他們感興趣的方法。這種縮小的接口也被稱為角色接口(role interfaces)。[2]接口隔離原則(ISP)的目的是系統解開耦合,從而容易重構
5. 依賴倒置原則(DIP)
依賴倒置原則(Dependence Inversion Principle)是程序要依賴于抽象接口,不要依賴于具體實現。簡單的說就是要求對抽象進行編程,不要對實現進行編程,這樣就降低了客戶與實現模塊間的耦合
面向過程的開發,上層調用下層,上層依賴于下層,當下層劇烈變動時上層也要跟著變動,這就會導致模塊的復用性降低而且大大提高了開發的成本。