物件導向系統設計備忘

2021-06-19 15:26:58 字數 872 閱讀 1415

物件導向的系統設計,說的簡單一點,就是關注點拆分的問題:

系統拆分成子系統;

子系統拆分成模組;

大的模組拆分成的小的模組;

小的模組拆分成類;

類拆分成結構體和功能點;

經過這樣的拆分,系統實際上會被抽象成物件的結構和物件的功能;以及物件之間的協作。

而在系統設計的過程中,需要關注的東西,除了模型的抽象之外,怎麼才能消除重複**,解除物件之間的強耦合,把變化的部分從不變的**中抽取出來,從而使得系統能夠快速的響應變化,這個是系統設計的關鍵。

而設計模式中重要的設計原則,也都是為了實現這個目標而總結出來的:

ocp ,開閉原則,意思是系統應該通過擴充套件的方式來拓展系統的功能,而不是修改現有的**,即對擴充套件開放,對修改關閉。

dip ,依賴倒轉原則,這個原則實際上是關於依賴關係管理(解耦)的乙個經驗總結,意思是客戶端應該依賴抽象的概念,而不是依賴具體的實現,這樣當實現發生變化之後,客戶端可以快速的響應變化,而無需修改客戶端**。

srp ,單一職責原則,在srp中,職責被定義為變化的因子,如果乙個類只有乙個可能導致它變化的因子,那麼,我們認為它是符合srp的,如果物件有乙個以上的職責,那麼,當乙個職責發生變化的時候,它就可能影響其他的職責,另外,過多的職責也會影響物件的復用。

isp ,介面隔離原則,這個也是管理物件之間的依賴關係的原則,物件導向的系統都是面向介面程式設計,介面是物件對外提供服務的抽象,也是物件依賴關係的抽象,通過定義單一職責(物件的角色)的介面,可以最大程度降低物件之間的耦合關係。

lod,迪公尺特法則,不要和陌生人說話,物件應該儘量減少對其他物件的依賴,降低耦合。

lsp,黎克特制代換原則,基類可以出現的地方,子類也一定可以。黎克特制代換原則是繼承復用的基石,如果違反了lsp,那麼抽象化的基礎也就不存在了。

物件導向設計

物件導向設計 object oriented design,ood 方法是oo方法中乙個中間過渡環節。其主要作用是對ooa分析的結果作進一步的規範化整理,以便能夠被oop直接接受。物件導向設計 ood 是一種軟體設計方法,是一種工程化規範。這是毫無疑問的。按照bjarne stroustrup的說法...

物件導向設計

1 物件導向的三要素 1.1 封裝 encapsulation a 封裝 合理的隱藏資料的隱藏 隱藏在方法背後 實現的隱藏 隱藏在介面背後 變化的隱藏 隱藏在抽象背後 b 封裝能夠提高物件的復用性 減低物件的耦合度c 良好的封裝 物件的高內聚 1.2 繼承 inheritance a 基於差異式程式...

物件導向設計

物件導向的設計把握乙個重要原則 誰擁有資料,誰就對外提供操作這些資料的方法。人在黑板上畫圓 person,blackboard,circle draw 列車司機在剎車 人關門 兩塊石頭磨成一把石刀,石刀可以砍樹,砍成木材,木材可以做椅子。stone石頭 stoneknife石刀 stoneknife...