天天看點

常用的軟體設計模式之工廠模式

工廠模式(Factory Pattern)

工廠模式是最常用的軟體設計模式之一,工廠模式屬于建立型的設計模式。它提供了一種建立對象的最佳方式。在工廠模式中,我們在建立對象時不會對用戶端暴露建立邏輯,并且是通過使用一個共同的接口來指向新建立的對象。

  1. 意圖

    工廠模式的意圖在于他的建立過程延遲到子類中去實作。工廠模式定義一個接口,讓子類自己決定執行個體化哪一個工廠類。

  2. 關鍵代碼

    建立過程在子類中執行。

3.例子

圖形-圓形、正方形、長方形

public interface shape {
	public void draw();
}

public class Circle implements shape{
	@Override
	public void draw() {
		System.out.println("I draw a Circle!");
	}
}
public class Square implements shape{
@Override
public void draw() {
	System.out.println("I draw a Square!");
	}
}
public class Rectangle implements shape{
	@Override
	public void draw() {
		System.out.println("I draw a Rectangle!");
	}	
}
public static void main(String[] args) {
	ShapeFactory shapeFactory = new ShapeFactory();
	shape shape1 = shapeFactory.getShape("Circle");
	shape1.draw();
}
           

輸出: I draw a Circle!

4. 優缺點:

優點:1、一個調用者想建立一個對象,隻要知道其名稱就可以了。 2、擴充性高,如果想增加一個産品,隻要擴充一個工廠類就可以。 3、屏蔽産品的具體實作,調用者隻關心産品的接口。

缺點:每次增加一個産品時,都需要增加一個具體類和對象實作工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。這并不是什麼好事

繼續閱讀