1. 程式人生 > >android設計模式——工廠方法模式

android設計模式——工廠方法模式

定義:定義一個用於建立物件的介面,讓子類決定例項化哪個類.

使用場景:

在任何需要生成複雜物件的地方,都可以使用工廠方法模式.

應用舉例:去工廠提貨物,只需說要什麼貨,不必知道貨物是怎麼做出來的

類圖:

  1. Factory,抽象的工廠類
  2. ConcreteFactory,具體的工廠類
  3. Product,抽象的產品類
  4. ConcreteProduct,具體的產品類

關鍵程式碼:建立過程在工廠的子類中進行。

優點:

  1. 一個呼叫者想建立一個物件,只要知道其名稱就可以了。
  2. 擴充套件性高,如果想增加一個產品,只要擴充套件一個工廠類就可以。
  3. 遮蔽產品的具體實現,呼叫者只關心產品的介面。

缺點:

  1. 每次增加一個產品時,都需要增加一個具體類和物件實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。這並不是什麼好事。
abstract class Product{
	public abstract void method();
		
}
class ConcreteProductA extends Product{

	@Override
	public void method() {
		// TODO 自動生成的方法存根
		System.out.println("我是具體的產品A");
	}
	
}

class ConcreteProductB extends Product{
	@Override
	public void method() {
		// TODO 自動生成的方法存根
		System.out.println("我是具體的產品B");
	}
}

abstract class Factory {
	public abstract  Product creatProduct();
}

class ConcreteFactor extends Factory{

	@Override
	public Product creatProduct() {
		// TODO 自動生成的方法存根
		return new ConcreteProductA();
	}

}

 

public static void main(String[] args) {
		// TODO 自動生成的方法存根
		
		
		Factory factory = new ConcreteFactor();
		Product product = factory.creatProduct();
		product.method();
				
	}