設計模式:工廠方法模式

一、引

工廠方法模式光從名字上就和簡單工廠模式很相似,其實具體的含義和實現也很相似,只不過工廠方法模式將原本簡單工廠模式中的工廠類進行了抽象,具體化了不同操作的工廠類。簡單的說,就是依據封閉-開放原則,對簡單工廠模式進行了修改。

二、問題

爲了能夠和簡單工廠模式進行比較,這次的問題還是設計一個簡單了計算程序。

三、理解

我們用簡單工廠模式進行設計, 可以先轉至我的另一篇博文,看看簡單工廠模式是怎麼實現的。知道了如何實現簡單工廠模式之後,我們用之前學習過的幾個原則來審視一下簡單工廠模式。當我需要增加開根號或者其他算數方式的時候,我們需要修改工廠類中的Case分支,這違反了什麼原則?沒錯,就是封閉-開放原則,所以爲了能夠保持這個原則,我們就需要將工廠類進行抽象,然後在添加需求的時候,實現各個具體的工廠就行了。

四、實現

其他的大致和簡單工廠相似,只是工廠類不同,這裏只貼出工廠的修改部分

interface IFactory {
	Operation CreateOperation();
}
public class AddFactory implements IFactory {

	@Override
	public Operation CreateOperation() {
		return new OperationAdd();
	}

}
public class Main {

	public static void main(String[] args) {
		IFactory factory = new AddFactory();
		Operation operation = factory.CreateOperation();
		operation.setNumA(2.1);
		operation.setNumB(3.1);
		operation.GetResult();
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章