第八章 雷鋒依然在人間 工廠方法模式 讀書筆記

2021-06-03 21:45:56 字數 1545 閱讀 7956

雷鋒依然在人間-工廠方法模式

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

2.工廠方法模式(factory method)定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到子類。

3.工廠方法模式的好處就是在擴充套件功能的時候,只要擴充套件了變化,不用修改現有的類了,也就完全符合了開放-封閉原則。

4.工廠方法把簡單工廠的內部邏輯判斷移到了客戶端**來進行。你想要加功能,搬來是改工廠類的,而現在是修改客戶端。

5.工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。但缺點是由於每加乙個產品,就需要加乙個產品工廠的類,增加了額外的開發量。

6.老人不需要知道誰來做好事,他只需知道是學雷鋒的人來幫忙就可以了。

8.1  operation.h

#pragma once

class operation

; operation(double numbera, double numberb)

:m_numbera(numbera),m_numberb(m_numberb)

; double geta()

; void seta(double number)

; double getb()

; void setb(double number)

; virtual double getresult()

protected:

double m_numbera;

double m_numberb;

};class operationadd :public operation

};class operationsub :public operation

};class operationmul :public operation

};class operationdiv :public operation

};

8.2  ifactory.h

#pragma once 

#include "operation.h"

class ifactory

;//加法工廠

class addfactory :public ifactory;};

//減法工廠

class subfactory :public ifactory;};

//乘法工廠

class mulfactory :public ifactory;};

//除法工廠

class divfactory :public ifactory

;};

8.3  客戶端

#include "stdafx.h"

#include "ifactory.h"

int _tmain(int argc, _tchar* argv)

大話設計模式八 工廠方法模式(雷鋒依然在人間)

工廠方法模式是簡單工廠模式的抽象和擴充套件。工廠方法模式是由客戶端來決定例項化那乙個工廠實現類。在簡單工廠類中如果要增加功能改動的是工廠類,但在工廠方法模式中要改的就是客戶端了,由客戶端決定 package factory public class mainclass private static ...

工廠方法模式Python版 雷鋒依然在人間

工廠方法模式定義了乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使乙個雷的例項化延遲到其子類。工廠方法模式的本質就是延遲到子類來選擇是實現。實現 class operationfactory operators operators operationadd opera...

工廠方法模式 雷鋒在人間

工廠方法模式 對比兩個模式 乙個簡單地加減乘除類 結構圖 只要輸入運算符號,工廠就可以例項化出乙個合適的物件,通過多型,返回父類的方式實現了計算器的結果。如果需要更改加法運算,直接更改operationadd就可以。如果增加其他運算,只要增加相應的運運算元類就可以了。如果需要修改運算類工廠,只需要在...