二十三種設計模式之建立型模式之工廠方法

2021-07-05 02:39:40 字數 1441 閱讀 4795

概述

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factorymethod使乙個類的例項化延遲到其子類。
適用性1.當乙個類不知道它所必須建立的物件的類的時候。

2.當乙個類希望由它的子類來指定它所建立的物件的時候。

3.當類將建立物件的職責委託給多個幫助子類中的某乙個,並且你希望將哪乙個幫助子類是**者這一資訊區域性化的時候。

參與者

1.product

定義工廠方法所建立的物件的介面。

2.concreteproduct

實現product介面。

3.creator

宣告工廠方法,該方法返回乙個product型別的物件。

可以呼叫工廠方法以建立乙個product物件。

4.concretecreator

重定義工廠方法以返回乙個concreteproduct例項。

類圖

例子

product

public

inte***ce work

concreteproduct

public

class

studentwork

implements

work

}

public

class

teacherwork

implements

work

}

creator

public

inte***ce iworkfactory

concretecreator

public

class

studentworkfactory

implements

iworkfactory

}

public

class

teacherworkfactory

implements

iworkfactory

}

test

public

class test

}

result

學生做作業!

老師審批作業!

二十三種設計模式之 (十) 原型模式

prototype 原型模式 實際也叫轉殖模式 用乙個已經建立的例項作為原型,通過複製該原型物件來建立乙個和原型相同或相似的新物件。在這裡,原型例項指定了要建立的物件的種類。用這種方式建立物件非常高效,根本無須知道物件建立的細節 原型模式的優點 結構圖 例項 建立乙個person物件,通過原型模式轉...

二十三種設計模式之組合模式

組合模式 將物件聚合成樹形結構來表現 整體 部分 的層次結構。組合模式能讓客戶以一致的方式來處理個別物件以及物件組合。也就是我們可以忽略物件組合與個體之間的差別。應用場景 餐廳合併列印主選單 子選單 public abstract class menucomponent public string ...

二十三種設計模式之工廠模式

工廠模式的核心 例項化物件 原因 有些物件不能直接例項化,比如介面 抽象類及複雜物件的其他依賴 核心 呼叫工廠class的靜態方法例項化物件 以日誌為例 public class staticfactory 核心 先建立工廠物件,之後呼叫工廠方法 例項化工廠模式 public class insta...