這個作業屬於哪個課程
[班級的鏈結] (
這個作業要求在**
[作業要求的鏈結] (
這個作業的目標
了解並能使用設計原則與設計模式並熟悉掌握markdown語法及中文排版
1.七大設計原則
設計原則
詳解開閉原則(ocp)
乙個軟體實體,如類,模組和函式應該對外擴充套件開發,對內修改關閉。用抽象構建框架,用實現擴充套件細節。不以改動原有類的方式來實現新需求,而是應該以實現事先抽象出來的介面(或具體類繼承抽象類)的方式來實現。
單一職責原則(srp)
乙個類只允許有乙個職責,即只有乙個導致該類變更的原因。如果乙個類具有多種職責,就會有多種導致這個類變化的原因,從而導致這個類的維護變得困難。
依賴倒置原則(dip)
依賴抽象而不是依賴實現。抽象不應該依賴細節,細節應該依賴抽象。高層模組不能依賴低層模組,二者都應該依賴抽象。
介面隔離原則(isp)
多個特定的客戶端介面要好於乙個通用性的總介面。客戶端不應該依賴它不需要實現的介面。不建立龐大臃腫的介面,應盡量細化介面,介面中的方法應盡量少。
迪公尺特法則(lod)
乙個物件應該對盡可能少的物件有接觸,也就是只接觸那些真正需要接觸的物件。迪公尺特法則也叫做最少知道原則,乙個類應該只和它的成員變數,方法的輸入,返回引數中的類作交流,而不應該引入其他的類。
黎克特制替換原則(lsp)
所有引用基類的地方必須能透明地使用其子類的物件,也就是說子類物件可以替換其父類物件,而程式執行效果不變。
合成/聚合復用原則(carp)
合成/聚合復用原則(composite/aggregate reuse principle或carp):就是在乙個新的物件裡面使用一些已有的物件,使之成為新物件的一部分;新物件通過向這些物件的委派達到復用已有功能的目的。簡而言之,要盡量使用合成/聚合,盡量不要使用繼承。區分has a和is a的問題。
2.三大類設計模式,分別為創造型模式、結構型模式及行為型模式,共計23種模式
建立型模式
1.工廠模式:定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。
2.抽象工廠模式:提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
3.單例模式:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。
4.建造者模式:將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。
5.原型模式:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
結構型模式
1.介面卡模式:將乙個類的介面轉換成客戶希望的另外乙個介面。介面卡模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
2.橋接模式:將抽象部分與實現部分分離,使它們都可以獨立的變化。
3.過濾器模式:允許開發人員使用不同的標準來過濾一組物件,通過邏輯運算以解耦的方式把它們連線起來。
4.組合模式:將物件組合成樹形結構以表示"部分-整體"的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。
5.裝飾器模式:動態地給乙個物件新增一些額外的職責。就增加功能來說,裝飾器模式相比生成子類更為靈活。
6.外觀模式:為子系統中的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。
7.享元模式:運用共享技術有效地支援大量細粒度的物件。
8.**模式:為其他物件提供一種**以控制對這個物件的訪問。
行為型模式
1.責任鏈模式:避免請求傳送者與接收者耦合在一起,讓多個物件都有可能接收請求,將這些物件連線成一條鏈,並且沿著這條鏈傳遞請求,直到有物件處理它為止。
2.命令模式:將乙個請求封裝成乙個物件,從而使您可以用不同的請求對客戶進行引數化。
3.直譯器模式:給定乙個語言,定義它的文法表示,並定義乙個直譯器,這個直譯器使用該標識來解釋語言中的句子。
4.迭代器模式:提供一種方法順序訪問乙個聚合物件中各個元素, 而又無須暴露該物件的內部表示。
5.中介者模式:用乙個中介物件來封裝一系列的物件互動,中介者使各物件不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。
6.備忘錄模式:在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態。
7.觀察者模式:定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。
8.狀態模式:允許物件在內部狀態發生改變時改變它的行為,物件看起來好像修改了它的類。
9.空物件模式:乙個空物件取代 null 物件例項的檢查。null 物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的 null 物件也可以在資料不可用的時候提供預設的行為。
10.策略模式:定義一系列的演算法,把它們乙個個封裝起來, 並且使它們可相互替換。
11.模板模式:定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
12.訪問者模式:主要將資料結構與資料操作分離。
找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變化的**混在一起;
針對介面程式設計,而不是針對實現程式設計;
為了互動物件之間的松耦合設計而努力。
作業二 讀書筆記 軟體設計原則 設計模式
這個作業屬於哪個課程 班級傳送門 這個作業要求在 作業要求傳送門 這個作業的目標 閱讀書籍,學習設計模式與設計原則思想 書籍的主要內容是講解物件導向的六大原則 23種設計模式 2種android開發架構模式,並結合android具體原始碼以及相關 demo講解。遵循設計原則可以使得我們的 有更強的拓...
作業二 讀書筆記 軟體設計原則 設計模式
這個作業屬於哪個課程 2022軟體 開發技術 這個作業要求在 讀書筆記 軟體設計原則 設計模式 這個作業的目標 在我日常時間開發中,讓我印象深刻的是單例模式 j a中單例模式是一種常見的設計模式,單例模式的寫法有好幾種,這裡主要介紹三種 懶漢式單例 餓漢式單例 登記式單例。單例模式有以下特點 1 單...
作業二 讀書筆記 軟體設計原則 設計模式
這個作業屬於哪個課程 2022軟體 開發技術 這個作業要求在 讀書筆記 軟體設計原則 設計模式 這個作業的目標 對於軟體設計原則 設計模式的了解 下面是展示書中講述的設計原則和設計模式 設計原則 理解含義 單一職責原則 乙個類只負責乙個功能領域中的相應職責,即乙個類只實現某個領域的相應職責,這樣有利...