簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法模式,但不屬於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 種族...