Java設計模式_(創建型)_工廠模式



引用百科:

   工廠模式是我們最常用的實例化對象模式了,是用工廠方法代替new操作的一種模式。著名的Jive論壇 ,就大量使用了工廠模式,工廠模式在Java程序系統可以說是隨處可見。因為工廠模式就相當於創建實例對象的new,我們經常要根據類Class生成實例對象,如A a=new A() 工廠模式也是用來創建實例對象的。


但是如果有很多的對象需要去new創建,並且設置各種屬性,幾十幾百,如此代碼就非常糾結了,

於是乎工廠模式就出現了,稱為工廠模式其實就是如同現實中的工廠一樣,將需要做的事集中起來,將產品的實現流程化,將通用功能實現可重用性,

一個小例子實現工廠:

 比如說芯片cpu廠商老板說,需要根據不同參數生產出不同的cpu,那么有了這個需求,就可以創建個工廠,如下:

CPU工廠,

CPU接口,

各類CPU的具體功能實現,

如此便可以根據不同的需求生產不同的CPU ,同時如果有新需求,也可以新增CPU實現,只要實現CPU 統一規范,即可實現插拔式擴展。




簡單實現代碼如下,

CPU接口:

public interface Cpu {	public void run();
}

CPU接口實現:

AMD CPU :

public class AmdCpu implements Cpu {	/**	 * CPU的針腳數	 */	private int pins = 0;	public AmdCpu(int pins) {		this.pins = pins;	}	@Override	public void run() {		System.out.println("AMD CPU的針腳數:" + pins);	}}

Inter CPU:

public class IntelCpu implements Cpu {	/**	 * CPU的針腳數	 */	private int pins = 0;	public IntelCpu(int pins) {		this.pins = pins;	}	@Override	public void run() {		System.out.println("Intel CPU的針腳數:" + pins);	}}


CPU工廠:

public class CpuFactory {	public static Cpu createCpu(String type, int param) {		Cpu cpu = null;		if ("intel".equals(type)) {			cpu = new IntelCpu(param);		} else if ("amd".equals(type)) {			cpu = new AmdCpu(param);		}		return cpu;	}}



客戶端啟動:

public class Client {		public static void main(String[] args) {		Cpu cpu = CpuFactory.createCpu("amd",987);		cpu.run();	}}


通過以上工廠模式代碼,便可以輕松實現,根據同一產品的不同需求,自動生成該產品的不同版本類型,無需關注具體的實現!




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com