工廠方法模式

2021-08-27 06:46:24 字數 1613 閱讀 7544

工廠方法模式就是父類不知道具體子類的情況下實現自己的功能。

這個模式跟ioc有異曲同工之處。ioc的介面也是不知道其實現,然後直接使用其功能。ioc的子類是通過反射來獲取的。而且工廠方法子類是後面new出來的的。

先看具體的實現

1、介面

public inte***ce phone

2、3個實現

public class nokia implements phone

}

public class iphone implements phone

}

public class htc implements phone

}

3、工廠方法

public abstract class factory

}

4、工廠方法的實現

public class iphonefactory extends factory

}

public class nokiafactory extends factory

}

5、main方法

public class main

}

這樣就是乙個工廠方法的簡單實現。為什麼htc類沒有工廠方法的實現,這個類是為了表示工廠方法的另外一種模式(後面會說到)。

其實這裡大家就可以看出工廠方法的優缺點。

最大的優點就是延遲了子類的實現,父類可以在不知道具體子類的情況下完成功能。ioc模式也是類似的

最大的缺點就是工廠方法的實現類與產品的實現類嚴重耦合。比如諾基亞的工廠方法就必須跟諾基亞的產品耦合,這樣大大提高了**間的耦合度。而且還有乙個缺點就是如果有大量的子類,那麼工廠方法實現類也會有許多。

下面介紹工廠方法的另外一種模式 帶引數的工廠方法

1與2 不變

3、工廠方法

public class factoryother else if (money < 2000)

return phone;

}public void call(int money)

}

public class factoryotherchild extends factoryother else

return phone;}}

4、main方法

public class mainother

}

這樣能過引數來實現乙個簡單工廠,這樣可以遮蔽掉工廠方法的實現類,減少類的生成。當然缺點跟簡單工廠一樣。

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...