Head First設計模式之工廠模式

2021-09-07 13:52:17 字數 1330 閱讀 4366

定義了乙個建立物件的介面, 但由子類決定要例項化的類是哪乙個. 工廠方法讓類把例項化推遲到子類

1、抽象工廠角色:這是工廠方法模式的核心,它與應用程式無關。是具體工廠角色必須實現的介面或者必須繼承的父類。

2、具體工廠角色:它含有和具體業務邏輯有關的**。由應用程式呼叫以建立對應的具體產品的物件。

3、抽象產品角色:它是具體產品繼承的父類或者是實現的介面。

4、具體產品角色:具體工廠角色所建立的物件就是此角色的例項。

namespace

designpatterns.factorymethod+="

, operation1.numbera, operation1.numberb, operation1.getresult());

factory factory2 = new

subfactory();

operation operation2 =factory2.createoperation();

operation2.numbera = 10

; operation2.numberb = 20

; console.writeline("-=

", operation2.numbera, operation2.numberb, operation2.getresult());

console.read();}}

//////

抽象操作類

/// public

abstract

class

operation

//////

加法操作

/// public

class

addoperation : operation

}//////

減法操作

/// public

class

suboperation : operation

}public

abstract

class

factory

public

class

addfactory : factory

}public

class

subfactory : factory}}

優點:缺點:參考:歡迎閱讀本系列文章:head first設計模式之目錄

《Head First設計模式》之命令模式

命令模式就是將方法呼叫 method invocation 封裝起來。通過封裝方法呼叫,我們可以把運算塊包裝成形,所以呼叫此運算的物件不需要關心事情是如何進行的,只要知道如何使用包裝成形的方法來完成它就可以了。通過封裝方法呼叫,可以用在以下場景 記錄日誌或者重複使用這些封裝來實現撤銷 undo 我對...

Head First設計模式之組合模式

將物件組合成樹形結構來表現 整體 部分 層次結構。組合能讓客戶以一致的方法處理個別物件以及組合物件。主要部分可以被一致對待問題.組合模式主要包含三個角色 2.composite 容器構件 容器節點包含子節點,其子節點可以是葉子節點,也可以是容器節點,它提供乙個集合用於儲存子節點,實現了在抽象構件中定...

Head First設計模式之工廠模式

定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個.工廠方法讓類把例項化推遲到子類 1 抽象工廠角色 這是工廠方法模式的核心,它與應用程式無關。是具體工廠角色必須實現的介面或者必須繼承的父類。2 具體工廠角色 它含有和具體業務邏輯有關的 由應用程式呼叫以建立對應的具體產品的物件。3 抽象產品...