工廠模式包括工廠方法模式和抽象工廠模式兩種。實際是將介面的例項建立交給乙個工廠類來做。
1. 工廠方法模式
又包括普通工廠模式、多方法工廠模式、靜態工廠模式三種設計方式。
例如:介面
public inte***ce father
實現類public class child1 implements father
}public class child2 implements father
}對於father介面例項的建立,可以有以下幾種方式。
1.1 普通工廠模式
工廠類:
public class factory
if("child2".equals(type))
return null;}}
缺點是新的實現類的建立,需要修改factory工廠類,且傳遞的引數錯誤會導致例項建立失敗。
1.2 多方法工廠模式
public class factory
缺點是新的實現類的建立,需要修改factory工廠類。
1.3靜態工廠模式
public class factory
缺點是新的實現類的建立,需要修改factory工廠類。
2. 抽象工廠模式
為了避免修改工廠類,建立乙個抽象工廠類,新增的father的實現類的建立交給新的實現了抽象工廠類的工廠類來建立。
public abstract class factory
}public class child2factory
}工廠模式使用場景,出現了大量實現了同一介面的例項建立操作的,可以採用工廠模式。
java設計模式之工廠模式
工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的資料生成一組類中某乙個類的例項,通常這一組類有乙個公共的抽象父類或者是介面並且實現了相同的方法,但是這些方法針對不同的資料進行了不同的操作。首先需要定義乙個父類或者介面,該類的子類通過不同的方法實現了父類中的方法。然後需要定義乙個工...
java設計模式之工廠模式
1 只要方法裡面控制產生物件的方法,就可稱為工廠相關方法。2 單例 多例。3 簡單工廠 例子 交通工具 多種交通工具 多種交通工具不同的生產過程 4 介面抽象類使用 一般乙個特性使用介面 會飛的 大概能定義為乙個物體使用抽象類 由於類的多繼承性,建議多用介面。5 抽象工廠 換掉一些列的產品,擴充套件...
設計模式之工廠模式(java)
看一下head first中披薩的例子 披薩的簡單工廠類 pizzafactory public class pizzafactory else if type.equals peoperoi else if type.equals clam return pizza 披薩店的類pizzastore...