乙個物件只包含乙個單一職責,而且該職責被完整地封裝在乙個類中。即只有乙個原因可以使類變更。
是實現高內聚、低耦合設計的指導方針。如果乙個類所承擔的職責越多,職責之間的耦合程度越高,類被復用的可能性越低。
對擴充套件開放,對修改封閉
不允許修改抽象類或者介面,允許擴充套件具體的實現類。
可以幫助軟體實現更好的抽象化。具體實踐中,找到系統的可變因素,將其封裝起來。而不要將可變元素散落在程式的每個角落,導致對變化不敏捷。
任何基類出現的地方,子類也可以出現。保證子類能夠替換所有基類出現的地方
是多型背後的原則,因此在程式中盡量使用基類型別來對物件進行定義,而在執行時再確定其子類型別,用子類物件來替換父類物件
介面不應該太大,使用者僅需要知道與之相關的方法
盡可能的為使用者提供小的單獨的介面,而不提供大的總介面。
只提供使用者所需要的行為,隱藏使用者不需要的行為。
依賴抽象而不依賴具體的實現。
抽象不應當依賴於細節;細節應當依賴於抽象
要面向介面程式設計,而不是是面向實現程式設計
當我們選擇面向介面程式設計時,我們就對變化十分敏捷,從而實現對擴充套件開放,對修改封閉原則。
同時我們在實踐中,也會使用依賴注入。也就是說當乙個類對另乙個類依賴時,我們可以將抽象類注入到依賴類中,從而實現依賴關係。
軟體開發(原則)
隨著軟體版本的更新迭代,為了使軟體能夠更好的維護,擴充套件。在兼顧他的 的可復用性以及他的靈活性的基礎上,我們對於軟體的設計應盡量根據7條原則來進行開發。含義 就乙個類而言,應該僅有乙個引起他變化的原因 含義 是說軟體實體 類,模組,函式等等 應該可以擴充套件,但是不可以修改。理解 就是軟體對程式的...
軟體開發的原則
1.單一職責 srp 乙個類或者乙個方法,只有乙個引起它變化的原因。應該只有乙個職責。每乙個職責都是變化的乙個軸線,如果乙個類有乙個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。2.開閉原則 ocp 開閉原則指的是乙個軟體實體應對對擴充套件開發,對修改關閉。3.依賴倒置原則 dip,ioc...
軟體構造的SOLID原則
經典的例子 正方形不是長方形的子類。因為正方形多了乙個長寬相等的屬性。如果長方形的長與寬是可變的,而此時卻用正方形代替了長方形,因為正方形時刻要求長寬相同,所以長寬會同時發生變化,而與我們預期不符,違反了liskov原則。因此二者沒有子類父類的關係。不強迫客戶端依賴於不需要的介面,避免介面汙染和胖介...