Home  >  Article  >  Java  >  Sample code for implementing simple factory pattern in Java (picture)

Sample code for implementing simple factory pattern in Java (picture)

黄舟
黄舟Original
2017-03-10 11:41:081982browse

Factory pattern is a creational pattern

Simple factory pattern

Class diagram


Use a factory class to create the corresponding object based on a condition

//业务功能
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);
	}
}


Defects of a simple factory: When a simple factory creates a product, it needs to pass the corresponding parameters. If the transmission is incorrect, the object cannot be obtained.

Improvement: multiple methods to create different products

Class diagram


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);
	}
}


The above is the detailed content of Sample code for implementing simple factory pattern in Java (picture). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn