設計模式 程式如何設計的方法集(更新中)

2021-06-16 20:19:44 字數 1638 閱讀 4851

通過以下這些模式和原則,可以找到"封裝變化"、"物件間鬆散耦合"、"針對介面程式設計"的感覺,從而設計出易維護、易擴充套件、易復用、靈活性好的程式。 

設計模式

1、簡單工廠模式:優點——工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。

2、策略模式

3、裝飾模式decorator:動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更靈活。裝飾模式是利用setcomponent來對物件進行包裝的,這樣每個裝飾物件的實現就和如何使用這個物件分離開了,每個裝飾物件只關心自己的功能,不需要關心如何被新增到物件鏈中。好處:有效地把類的核心職責和裝飾功能區分開了,而且可以去除相關類中重複的裝飾邏輯。(減少主類的複雜性,防止修改主類的邏輯)

4、**模式proxy:為其他物件提供一種**以控制對這個物件的訪問。subject類定義共用介面;realsubject類定義proxy所代表的真實實體;proxy類儲存乙個引用使得**可以訪問實體,並提供共用介面的實現。應用場合:1)遠端**,為乙個物件在不同的位址空間提供區域性代表;2)虛擬**,根據需要建立開銷大的物件,通過它來存放例項化需要很長時間的真實物件;3)安全**,用來控制真實物件訪問時的許可權;4)智慧型指引,當呼叫真實物件時,**處理另外一些事。

5、工廠方法模式factory method:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。好處——克服了簡單工廠違背開放-封閉原則的缺點,又保持了封裝物件建立過程的優點。

6、外觀模式facade:為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。子系統類subsystem classes不包含對外觀類facade物件的引用。完美體現了依賴倒轉原則和迪公尺特法則的思想。

設計原則

1、單一職責原則srp:就乙個類而言,應該僅有乙個引起它變化的原因。軟體設計真正要做的許多內容,就是發現職責並把那些職責相互分離[asd]。 在程式設計時,我們要在類的職責分離上多思考,做到單一職責,這樣**才易維護、易擴充套件、易復用、靈活多樣。

2、開放-封閉原則:軟體實體(類、模組、函式等)應該可以擴充套件,但是不可修改。面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。開發人員應該僅對程式中出現頻繁變化的那些部分做出抽象,拒絕不成熟的抽象和抽象本身一樣重要。

3、依賴倒轉原則:a.高層模組不應該依賴低層模組,兩個模組都依賴抽象;b.抽象不應該依賴細節,細節應該依賴抽象。程式中所有的依賴關係都是終止於抽象類或者介面(編寫程式時考慮如何針對抽象程式設計而不是針對細節程式設計),那就是物件導向的設計,反之就是過程化設計。 黎克特制代換原則:子型別必須能夠替換掉它們的父型別。

4、迪公尺特法則lod(最少知識原則j&dp):如果兩個類不必直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。強調在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權。其基本思想,是強調類之間的松耦合。

設計模式 模板方法設計模式

物件導向,萬物皆物件,用乙個雷來反應現實生活中的東西。比如銀行系統,業務公升級 活期 定期,差別很小,就加判斷 違背單一職責 差別比較多,尤其是模擬較複雜,型別拆分下。拆分之後,自然就有父類,重用。利率 每個客戶端都有利率,但是各不一樣 抽象方法。show 不分客戶端是一樣的,個別客戶端是不一樣的 ...

設計模式 工廠方法設計模式

模式概述 工廠方法模式又稱工廠模式,屬於類的建立型模式。在工廠方法模式中,父類負責定義建立物件的公共介面,而子類則負責生成具體的物件,這樣做的目的是將類的例項化操作延遲到子類中完成,即由子類決定究竟應該例項化哪乙個類。示例 public class audi extends car public c...

設計模式之模板方法設計模式

父類抽象出子類共有的方法,子類實現各自不同的業務。總之就是一種行為有他們共同的方法,只是他們具體的實現不一樣。比如開車這種行為模式,啟動 換擋 踩油門。每種型號品牌的車都有共同的行為,但是不同型號品牌的車的實現方式可能不同,需要每個品牌型號的車自己實現這些功能。這樣的定義上面行為的模式,稱之為模板方...