簡單工廠 工廠 抽象工廠總結

2021-10-12 06:18:53 字數 1815 閱讀 3228

簡單工廠,顧名思義要比其他兩個工廠簡單一些,工廠的作用可以認為是乙個人要一件成品交給工廠去完成,那麼這個人只要的是結果,對於內部的細節來說是不關心的,所以我們可以理解為這個人直接跟工廠對接。即:在客戶端只跟工廠模組對接。

那工廠接到某人給它的任務就開始工廠自己的工作。那麼工廠就會命令下面的部門,我們要完成一項什麼樣的任務,相關部門進行工作。比如說現在要實現乙個計算器的功能,客戶只要能得到自己的計算結果就行。那麼工廠部門就可以命令自己的「運算」部門去工作。下面這段**就是工廠下的乙個部門的工作。

public  class  operation

public double numbera

set}public double numberb

set}public virtual double getresult() //虛方法

然後「運算部門」告訴自己下面的工人去製作應該要完成的工作。下面的**就是工人要做的事情。

class operationadd:operation

}class operationsub:operation

}class operationmul:operation

}class operationdiv:ooperation

}

每個工人把自己的工作做好之後,把成果給工廠

public class operationfactory//建造乙個工廠類

return oper;

}}

工廠把最後的成果給客戶,並且客戶可以得到自己想要的東西

operation oper;

oper=operationfactory.createoperate"+";

oper.numbera=1;

oper.numberb=2;

double result =oper.getresult();

工廠模式很好理解,如果想要增加新的功能,往工廠類中加case語句即可,這樣增加了新的功能,但是同時又修改了原理來的類,這就違背了開閉原則。 那麼如何解決這一問題呢?就需要利用到工廠模式了。這個計算器中的工廠類可以抽象出來乙個工廠介面,把下面的各個運算方式改為各個運算工廠,這樣如果我們要增加類的話,就不會違背開閉原則。

優點:它們是松耦合的,因為建立物件的**與使用它的**是分開的。客戶端完全不需要關心要傳遞哪些引數以及需要例項化哪些類。由於新增新類更加容易,所以降低了維護成本。

工廠方法用於建立乙個產品

構建工廠介面

inte***ce ifactory

然後再用工廠下面的各個運算型別(加減乘除)去實現這個介面。

class addfactory:ifactory

}class subfactory:ifactory

}class mulfactory:ifactory

class divfactory:ifactory

客戶端

ifactory ope***ctory =new addfactory ();

operation oper=ope***ctory .createoperation()

oper.numbera=1;

oper.numberb=2;

double result=oper.getresult();

抽象工廠方法用於建立相關產品的系列,我覺得跟工廠模式有相似之處,如果有新的介面,在工廠介面中增加新的介面方法。

簡單工廠,工廠模式,抽象工廠

簡單工廠,工廠模式,抽象工廠 都屬於設計模式中的建立型模型,主要功能,幫助把物件的例項化部分抽取出來,增強系統擴充套件性.1.簡單工廠 簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數的不同來返回不同的物件例項。不修改 的話,是無法擴充套件的。include using namespace s...

簡單工廠 工廠方法 抽象工廠簡明總結

角色組成 圖示 上 簡單工廠 class driver 角色組成 圖示 上 抽象工廠 abstract class driver 具體工廠 每個具體工廠負責乙個具體產品 class benzdriver extends driver class bmwdriver extends driver 總結...

簡單工廠 工廠 抽象工廠的區別

解釋一 工廠方法模式的核心是乙個抽象工廠類,而簡單工廠模式把核心放到了乙個具體類上.簡單工廠是工廠方法模式的特例。工廠方法模式和抽象工廠模式的最主要的區別在於對工廠的抽象程度上。抽象工廠模式中一般是抽象出工廠介面,表示他就是乙個工廠,而不管它是製造什麼產品的工廠,他的抽象程度較高。而工廠方法模式的抽...