建立型模式應用實驗

2022-09-18 17:00:12 字數 1707 閱讀 1159

建立型模式(creational pattern)的主要特點是將物件的建立與使用分離,根據物件的建立與組合方式的不同,建立型模式可分為單例(singleton)模式、原型(prototype)模式、工廠方法(factory method)模式、抽象工廠(abstract factory)模式和建造者(builder)模式 5 種。

本實驗的主要目的如下。

實驗原理1. 建立型模式的工作原理建立型模式隱藏了物件的建立細節,物件的建立由相關的工廠來完成,使用者不需要關注物件的建立細節,這樣可以降低系統的耦合度。建立型模式共 5 種,它們分別是

單例模式

、原型模式

、工廠方法模式

、抽象工廠模式

和建造者模式

,其工作原理在各自的教程中也都有詳細的介紹,每種模式的實驗大概要花 2 個學時,大家可以根據實驗計畫來選做若干個實驗,下面以工廠方法模式為例,介紹其實驗過程。

2. 工廠方法模式的工作原理工廠方法模式(factory method pattern),也叫虛擬構造器(virtual constructor)模式或者多型工廠(polymorphic factory)模式。

在工廠方法模式中,工廠父類負責定義建立產品物件的公共介面,而工廠子類則負責生成具體的產品物件,這樣做的目的是將產品類的例項化操作延遲到工廠子類中完成。其結構圖如圖 1 所示。

圖1 工廠方法模式的類圖

工廠方法模式包含如下角色。

工廠方法模式的特點是當系統擴充套件需要新增新的產品物件時,僅僅需要新增乙個具體產品物件以及乙個具體工廠物件,原有工廠物件不需要進行任何修改,也不需要修改客戶端,很好地符合了「開閉原則」。

實驗內容(1) 用工廠方法模式設計乙個電動自行車工廠的模擬程式。

要求:要為每種品牌的電動自行車提供乙個子工廠,如愛瑪工廠專門負責生產愛瑪(aima)牌電動自行車,雅迪工廠專門負責生產雅迪(yadea)牌電動自行車。如果今後需要生產台鈴(tailg)牌電動自行車,只需要增加乙個新的台鈴電動自行車工廠即可,無須修改原有**,使得整個系統具有更強的靈活性和可擴充套件性。(

)。(2) 按照以上要求設計類圖和編寫 

j**a

源程式。

實驗要求所設計的實驗程式要滿足以下兩點。

實驗步驟(1) 用 uml 設計「電動自行車工廠模擬程式」的結構圖。「電動自行車工廠模擬程式」的結構圖如圖 2 所示。

圖2 電動自行車工廠模擬程式的結構圖

(2) 根據結構圖寫出「電動自行車工廠模擬程式」的源**。

① 電動自行車工廠模擬程式的源**如下。

② 物件生成器的源**如下。

③xml 配置檔案的**如下。

(3) 上機測試程式,寫出執行結果。

「電動自行車工廠模擬程式」的執行結果如圖 3 所示。

圖3 電動自行車工廠模擬程式的執行結果

(4) 按同樣的步驟設計其他「建立型模式」的程式例項。

(5) 寫出實驗心得。

建立型模式 原型模式

使用原型例項指定建立物件的種類,並且通過轉殖這些原型建立新的物件 原理是將乙個原型物件傳給要發動建立的物件,該物件通過請求原型物件轉殖自己來建立過程 轉殖方法 public prototype clone jdk中為我們提供了轉殖的方法clone 從object繼承下來,乙個物件要實現轉殖,需要實現...

建立型模式 原型模式

原型 prototype 模式主要用於建立物件的轉殖,通常其最簡單的形式就是採用自定 clone 函式並 傳入物件引數以返回此物件的乙個副本,這在 python 實作上可使用內定 copy.cop y 或 copy.deepcopy 函式來達到此目的。當已有乙個物件但對此物件的某些部分會被變更卻又想...

原型模式 建立型模式

文章首發個人部落格 如果我們有乙個類 sheep 它裡面有兩個屬性,名稱 name 年齡 age 現在我們有乙個它的例項 s1 我們需要按照這個例項的屬性再去建立兩個物件。1 sheep data public class sheep 2 main public class main 原型模式 用原...