欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Java

Java 实现简单工厂模式的示例代码(图)

程序员文章站 2022-04-14 17:22:27
...
工厂模式 属于创建型模式

简单工厂模式

类图

Java 实现简单工厂模式的示例代码(图)

通过一个工厂类,以一个条件来创建对应的对象

//业务功能
public interface ICalculation {
	double getResult(double numA, double numB);
}


public class CalcAdd implements ICalculation {

	@Override
	public double getResult(double numA, double numB) {
		System.out.println("加法");
		return numA + numB;
	}

}


public class CalcSubtract implements ICalculation {

	@Override
	public double getResult(double numA, double numB) {
		System.out.println("减法");
		return numA - numB;
	}

}


/*
 * 简单工厂模式 关注:对象的创建
 * 建立一个工厂类,对实现了同一接口的或者是存在继承关系的一些类进行实例的创建
 */
public class Test4Simple {
	public static void main(String[] args) {
//		String operation = "/";
		String operation = "+";
//		String operation = "-";
//		String operation = "*";
		double numA = 182, numB = 33;
		ICalculation createCalc = CalcSimpleFactory.createCalc(operation);
		double result = createCalc.getResult(numA, numB);
		System.out.println(result);
	}
}


简单工厂的缺陷: 简单工厂创建产品时需要传递相应的参数,如果传递不正确就取不到对象了。

改进:多方法创建不同产品

类图

Java 实现简单工厂模式的示例代码(图)

public class CalcMultipleFactory {
	
	public static ICalculation produceAdd() {
		return new CalcAdd();
	}
	
	public static ICalculation produceSubtract() {
		return new CalcSubtract();
	}
	
	public static ICalculation produceMultiply() {
		return new CalcMultiply();
	}
	
	public static ICalculation producepide() {
		return new Calcpide();
	}
}


public class Test4Multiple {

	public static void main(String[] args) {
		double numA = 182, numB = 33;
		
		ICalculation createCalc = CalcMultipleFactory.produceAdd();
		double result = createCalc.getResult(numA, numB);
		System.out.println(result);
		
		createCalc = CalcMultipleFactory.produceSubtract();
		result = createCalc.getResult(numA, numB);
		System.out.println(result);
		
		createCalc = CalcMultipleFactory.produceMultiply();
		result = createCalc.getResult(numA, numB);
		System.out.println(result);
		
		createCalc = CalcMultipleFactory.producepide();
		result = createCalc.getResult(numA, numB);
		System.out.println(result);
	}
}

以上就是Java 实现简单工厂模式的示例代码(图)的详细内容,更多请关注其它相关文章!