1. 程式人生 > >路一步步走>> 設計模式一:AbstractFactory-抽象工廠

路一步步走>> 設計模式一:AbstractFactory-抽象工廠

1. 還是自己打打程式碼容易理解。

2. 把概念抽象為類,一個不夠,再加一個,再加一個,再加... 

3. 學習設計模式,先著手建立型模式,然後行為模式,再然後結構型模式。由簡入繁,不容易枯燥放棄。

package com.test.DPs.ChuangJian.AbstractFactory;

/**
 * 建立型:AbstractFactory-抽象工廠
 * 
 * 注:virtual關鍵字並不在java中出現,java中預設實現了自動繫結機制。
 *    如果混淆,只需理解:virtual和abstract,一個用於多型,第一個用於繼承
 */
interface food{}	
interface produce {food get();}

class A implements food{}
class B implements food{}

class FactoryForA implements produce{
	@Override
	public food get(){
		return new A();
	}
}
class FactoryForB implements produce{
	@Override
	public food get(){
		return new B();
	}
}

/**
 * 抽象工廠
 * 用途:提供以一個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
 * 優點:輕鬆新增新類,無需修改原始碼。
 * 
 * 理解:
 * 工廠:生產+產品
 */
public class AbstractFactory{
	public void ClientCode(String name){
		food x = new FactoryForA().get();
		x = new FactoryForB().get();
	}
}