设计模式:工厂方法模式

一、引

工厂方法模式光从名字上就和简单工厂模式很相似,其实具体的含义和实现也很相似,只不过工厂方法模式将原本简单工厂模式中的工厂类进行了抽象,具体化了不同操作的工厂类。简单的说,就是依据封闭-开放原则,对简单工厂模式进行了修改。

二、问题

为了能够和简单工厂模式进行比较,这次的问题还是设计一个简单了计算程序。

三、理解

我们用简单工厂模式进行设计, 可以先转至我的另一篇博文,看看简单工厂模式是怎么实现的。知道了如何实现简单工厂模式之后,我们用之前学习过的几个原则来审视一下简单工厂模式。当我需要增加开根号或者其他算数方式的时候,我们需要修改工厂类中的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();
	}

}

 

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