1. 程式人生 > 其它 >Java設計模式學習(簡單工廠模式)

Java設計模式學習(簡單工廠模式)

技術標籤:javajava設計模式

舉例


簡單工廠模式嚴格意義上來說,並不屬於設計模式中的一種,不過這裡還是簡單記錄下。
定義: 由一個工廠物件決定創建出哪一種型別例項。客戶端只需傳入工廠類的引數,無需關心建立過程。
優點: 具體產品從客戶端程式碼抽離出來,解耦。
缺點: 工廠類職責過重,增加新的型別時,得修改工程類的程式碼,違背 開閉原則
舉例:
1、新建Fruit水果抽象類,包含eat抽象方法:

public abstract class Fruit {

	public abstract void eat();
}

2、其實現類Apple:

public
class Apple extends Fruit { @Override public void eat() { System.out.println("蘋果"); } }

3、新建建立Fruit的工廠類:

public class FruitFactory {

	public Fruit product(String name) {
		if ("apple".equals(name)) {
			return new Apple();
		} else {
			return null;
		}
	}
}

4、新建個客戶端測試一下:

public class WipeApplication {

	public static void main(String[] args) {

//		Apple apple = new Apple(); 
//		apple.eat();

		FruitFactory fruitFactory = new FruitFactory();
		Fruit fruit = fruitFactory.product("apple");
		fruit.eat();

	}

}

可以看到,客戶端Application並未依賴具體的水果型別,只關心FruitFactory的入參,這就是客戶端和具體產品解耦的體現。

在這裡插入圖片描述