Factory pattern is a creational 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!