Java建立者模式之簡單工廠模式

2021-09-20 10:28:47 字數 1456 閱讀 9198

簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法模式,但不屬於23種gof設計模式之一。gof是(「四人幫」,指gamma, helm, johnson & vlissides, addison-wesley四人)提出的23種設計模式;簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。

工廠類是整個模式的關鍵.包含了必要的邏輯判斷,根據外界給定的資訊,決定究竟應該建立哪個具體類的物件.通過使用工廠類,外界可以從直接獲得具體產品物件,僅僅需要負責「消費」物件就可以了。而不必管這些物件究竟如何建立及如何組織的.明確了各自的職責和權利,有利於整個軟體體系結構的優化。

由於工廠類集中了所有例項的建立邏輯,違反了高內聚責任分配原則,將全部建立邏輯集中到了乙個工廠類中;它所能建立的類只能是事先考慮到的,如果需要新增新的類,則就需要改變工廠類了。

當系統中的具體產品類不斷增多時候,可能會出現要求工廠類根據不同條件建立不同例項的需求.這種對條件的判斷和對具體產品型別的判斷交錯在一起,很難避免模組功能的蔓延,對系統的維護和擴充套件非常不利;

這些缺點在前面講述工廠方法模式中得到了一定的克服。

由於工廠類建立的對像比較少;客戶只需要知道傳入放入引數,呼叫,但由於簡單工廠容易違反搞高內聚責任分配原則,因此只適合比較簡單的場景使用;

**需求:有客戶給出加減乘除的的需求,使用簡單工廠模式來實現;

建立operation類提供屬性;

public class operation 

public void setnumbera(double numbera)

public double getnumberb()

public void setnumberb(double numberb)

public double getresult() throws exception

public class operationfactory  

return oper;

} }

//加法

public class operationadd extends operation

}//減法

public class operationsub extends operation }

//乘法

public class operationmul extends operation

}//除法;

public class operationdev extends operation else

} }

import org.junit.test;

public class testoperation

}

//結果為3;

設計模式 建立者 工廠模式

解決問題 當客戶需要手機 而不知道需要什麼型別的手機 就是對某一類需求,而不知道具體需求,用工廠模式可以做到靈活的滿足需求,按照客戶的需要 生產出對應的各種型別的手機 public inte ce phone public class motophone implements phone overr...

建立者模式之工廠方法模式

工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了物件導向的多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。在工廠方法模式中,核心的工廠類不再負責所有產品的建立,而是將具體建立工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現的介面,而不負責哪乙個產品類被例項化這種細節...

java 設計模式之八 建立者模式

建立者模式和工廠模式有點類似,不過關注點不同。工廠模式往往只關心你要的是什麼,二不關心這個東西的具體細節是什麼。而建立模式則關心的是這個東西的具體細節的建立。拿建立人物來說,我們關心的不僅是建立乙個人物,還要關心他的性別,膚色和名字,則可以使用建立者模式 package builder doc 種族...