博覽網 設計模式 第二週課程筆記

2021-08-08 23:22:44 字數 1299 閱讀 7626

本週接著介紹詳細的具體的設計模式,包括工廠方法、抽象工廠模式、原型模式、構建器、門面模式、**模式、介面卡和中介者。

一、工廠方法

1.應用情景

在軟體系統中,經常面臨著物件建立的工作;由於需求的變化,需要建立的物件的具體型別經常發生變化。

2.解決方案

在軟體中,可以通過將new封裝到工廠類的create函式中,並且將工廠類抽象出乙個基類,實現new的多型性。這樣可以保證物件構建函式的復用,實現將變化集中的目的。

其結構如下圖所示:

二、抽象工廠模式

1.應用情景

需要進行一系列的相互關聯的建立活動時。

2.解決方案

將這一系列的建立活動放置到乙個工廠類中,簡化系統中類的個數。

三、原型模式

1.應用情景

在軟體系統中,經常面臨著「某些結構複雜的物件」的建立工作;由於需求的變化,這些物件經常面臨著劇烈的變化,但是它們卻擁有比較穩定一致的介面。

2.解決方案

在需要使用物件的地方,傳入乙個配置好的原型物件,在需要使用時深拷貝該物件,獲取所需的物件。

其結構圖如下圖所示:

四、構建器

1.應用情景

在軟體系統中,存在乙個複雜物件的建立工作,其建立的流程是固定的,但是其建立的子步驟經常發生改變。

2.解決方案

與模板方法類似,將建立流程在基類中實現,子過程作為protected的虛函式,在子類中再實現。實現時需要注意不同語言在構建物件時呼叫虛函式的區別。

五、門面模式

1.應用情景

元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各個系統的演化,這種過多的耦合面臨很多變化的挑戰。

2.解決方案

將所有的耦合關係使用乙個統一的類來管理,即給乙個子系統設計乙個類做外部的門面,實現高內聚低耦合。

六、**模式

1.應用情景

在物件導向系統中,有些物件由於某種原因,直接訪問會給使用者、或者系統結構帶來很多麻煩。

2.解決方案

增加乙個間接層來解決這些麻煩,保證客戶程式呼叫的透明性。

七、介面卡

1.應用情景

將現存物件放到新的環境中使用,但是介面不匹配時。

2.解決方案

增加乙個間接類將舊的介面轉換為新的介面。

八、中介者

1.應用情景

在系統內部,物件之間相互維護了非常複雜的引用關係時。

2.解決方案

使用乙個中介者類,將所有相關的物件引用集中管理,實現系統內物件之間的相互聯絡的解耦。

博覽網 設計模式 第一周課程筆記

本週課程先大致介紹了設計模式的概念以及產生原因,然後詳細講解了設計模式的幾大原則,接著按照順序介紹了模板方法 策略模式 觀察者模式 裝飾模式 橋模式這幾個設計模式。課程目標 理解松耦合設計思想 掌握物件導向設計原則 掌握重構技法改善設計 掌握gof核心設計模式 一 程式開發的兩種思維 1.底層思維 ...

博覽網 C 標準庫 第四周課程筆記

第四周的課程繼續介紹標準庫的內容,本週主要介紹了stl中的演算法和介面卡。詳細講解了迭代器中的traits如何幫助演算法獲得更高的效能,也介紹了介面卡如何通過改造其適配物件,使適配物件取得所需的特殊行為。這一部分的內容比較複雜,重點放在演算法和介面卡的使用上,而不是構造上。一 演算法與迭代器 1.演...

第二週課程管理實踐總結

網路131班 201336615143 容永豪 管理概論 鏈結 第三講管理者及其素質 一.管理者及其職責 正因為組織的績效受到眾多的因素影響,因此需要有人帶領組織的人來克服環境的不確定因素 這個人或者這群人就是 管理者 管理者就是對組織負責,對組織績效負責的人 二.管理者的地位分類 高層管理者 對組...