| 這個作業(yè)屬于哪個課程 | 2022軟件代碼開發(fā)技術(shù) (廣東工業(yè)大學(xué) - 計算機(jī)學(xué)院) |
|---|---|
| 這個作業(yè)要求在哪里 | 讀書筆記----軟件設(shè)計原則、設(shè)計模式 |
| 這個作業(yè)的目標(biāo) | 認(rèn)識掌握軟件設(shè)計原則,設(shè)計模式 |
參考:菜鳥教程-設(shè)計模式
摘要:設(shè)計模式(Design pattern)代表了最佳的實踐,通常被有經(jīng)驗的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。這些解決方案是眾多軟件開發(fā)人員經(jīng)過相當(dāng)長的一段時間的試驗和錯誤總結(jié)出來的。
一、總結(jié)
軟件設(shè)計的原則:
- 1、開閉原則
對擴(kuò)展開放,對修改關(guān)閉。 - 2、里氏代換原則
任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。 - 3、依賴倒轉(zhuǎn)原則
針對接口編程,依賴于抽象而不依賴于具體。 - 4、接口隔離原則
使用多個隔離的接口,比使用單個接口要好。 - 5、迪米特法則
一個實體應(yīng)當(dāng)盡量少地與其他實體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對獨立。 - 6、合成復(fù)用原則
盡量使用合成/聚合的方式,而不是使用繼承。
軟件設(shè)計的模式:
- 1、創(chuàng)建型模式,包含:
- 工廠模式:定義一個創(chuàng)建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創(chuàng)建過程延遲到子類進(jìn)行。
- 抽象工廠模式:提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。
- 單例模式:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
- 建造者模式:將一個復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。
- 原型模式:在運(yùn)行期建立和刪除原型。
- 2、結(jié)構(gòu)型模式,包含:
- 適配器模式:將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。
- 橋接模式:將抽象部分與實現(xiàn)部分分離,使它們都可以獨立的變化。
- 過濾器模式:允許開發(fā)人員使用不同的標(biāo)準(zhǔn)來過濾一組對象,通過邏輯運(yùn)算以解耦的方式把它們連接起來。
- 組合模式:將對象組合成樹形結(jié)構(gòu)以表示"部分-整體"的層次結(jié)構(gòu)。組合模式使得用戶對單個對象和組合對象的使用具有一致性。
- 裝飾器模式:動態(tài)地給一個對象添加一些額外的職責(zé)。就增加功能來說,裝飾器模式相比生成子類更為靈活。
- 外觀模式:為子系統(tǒng)中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。
- 享元模式:運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。
- 代理模式:為其他對象提供一種代理以控制對這個對象的訪問。
- 3、行為型模式,包含:
- 責(zé)任鏈模式:避免請求發(fā)送者與接收者耦合在一起,讓多個對象都有可能接收請求,將這些對象連接成一條鏈,并且沿著這條鏈傳遞請求,直到有對象處理它為止。
- 命令模式:將一個請求封裝成一個對象,從而使您可以用不同的請求對客戶進(jìn)行參數(shù)化。
- 解釋器模式:給定一個語言,定義它的文法表示,并定義一個解釋器,這個解釋器使用該標(biāo)識來解釋語言中的句子。
- 迭代器模式:提供一種方法順序訪問一個聚合對象中各個元素, 而又無須暴露該對象的內(nèi)部表示。
- 中介者模式:用一個中介對象來封裝一系列的對象交互,中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。
- 備忘錄模式:在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)。
- 觀察者模式:定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。
- 狀態(tài)模式:允許對象在內(nèi)部狀態(tài)發(fā)生改變時改變它的行為,對象看起來好像修改了它的類。
- 空對象模式:創(chuàng)建一個指定各種要執(zhí)行的操作的抽象類和擴(kuò)展該類的實體類,還創(chuàng)建一個未對該類做任何實現(xiàn)的空對象類,該空對象類將無縫地使用在需要檢查空值的地方。
- 策略模式:定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換。
- 模板模式:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。
- 訪問者模式:主要將數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)操作分離。
二、心得
在以往開發(fā)實踐過程中我對于接口隔離原則比較注重,我認(rèn)為軟件設(shè)計需要有相對應(yīng)的原則來約束行為,才能提高軟件系統(tǒng)的可維護(hù)性和可重用性,增加軟件的可擴(kuò)展性和靈活性,設(shè)計人員應(yīng)該盡最大努力按照原則設(shè)計軟件,從而提高軟件開發(fā)的效率,節(jié)省軟件開發(fā)和維護(hù)的成本。
三、截圖

posted on
浙公網(wǎng)安備 33010602011771號