淺析JAVA設計模式之工廠模式(二)
阿新 • • 發佈:2017-06-12
1.2 源碼 pub color post del tar pop south
1.2工廠方法的實現(建一個factroyMethod包,全部程序都放在該包下):
1 工廠方法模式簡單介紹
工廠方法 (Factroy Method)模式:又稱多態性工廠模式(Polymorphic Factory),在這樣的模式中,核心工廠不再是一個詳細的類。而是一個抽象工廠,提供詳細工廠實現的接口,詳細創建產品交由子工廠去做,抽象工廠不涉及不論什麽產品被實例化的細節。
而不同等級的產品。就相應一個不同等級的工廠,例如以下圖。
圖1
1.1工廠方法模式(多態性工廠模式):
工廠方法模式有四個角色: 1. 抽象產品接口 2. 詳細產品類 3. 抽象工廠接口 4.詳細工廠類。
1.2工廠方法的實現(建一個factroyMethod包,全部程序都放在該包下):
(1)首先建一個抽象產品接口(Computer.java)。
package factroyMethod; public interface Computer { public void run(); }
(2)建兩個詳細產品類(Dell.java、Lenovo.java)。須要實現Computer接口。
package factroyMethod; public class Dell implements Computer { public void run() { System.out.println("戴爾電腦執行了"); } } package factroyMethod; public class Lenovo implements Computer { public void run() { System.out.println("聯想電腦執行了"); } }
(3)建一個抽象工廠接口(ComputerFactory.java)。
package factroyMethod; public interface ComputerFactory { public Computer makeComputer(); }
(4)建兩個個詳細工廠類(DellComputerFactory.java、LenovoComputerFactory.java)。
package factroyMethod; public class DellComputerFactory implements ComputerFactory { public Computer makeComputer(){ return new Dell(); } } package factroyMethod; public class LenovoComputerFactory implements ComputerFactory { public Computer makeComputer(){ return new Lenovo(); } }
(5)建一個client程序(TestFactroyMethod.java)測試。
package factroyMethod; public class TestFactroyMethod { public static void main(String []args)throws Exception{ ComputerFactory computerFactory= new DellComputerFactory(); Computer computer= computerFactory.makeComputer(); computer.run(); } }
執行輸出:
戴爾電腦執行了
從輸出能夠看出,依據須要生成的詳細產品。調用相應的子工廠。即使產品添加了種類,僅僅要實現相應的工廠。而不須要改動工廠的源碼,工廠的登記相應著產品的等級,改進了簡單工廠模式的缺點。
(7)最後,我們再看一下工廠方法模式的UML圖。
圖1.1 工廠方法模式
推薦文章:
淺析JAVA設計模式之工廠模式(一)
http://blog.csdn.net/minidrupal/article/details/38323341
Author: Vicky
Introduction: 教育工作者
Sign: 前事不忘。後事之師
淺析JAVA設計模式之工廠模式(二)