팩토리 패턴은 생성 패턴이다
클래스 다이어그램
팩토리 클래스를 통해 조건에 해당하는 객체 생성
//业务功能 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); } }
간단한 팩토리의 단점: 단순 팩토리에서는 제품을 생성할 때 해당 매개변수를 전달해야 하며, 전달이 올바르지 않으면 개체를 얻을 수 없습니다.
개선: 다양한 제품을 생성하는 다양한 방법
클래스 다이어그램
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로 간단한 팩토리 패턴을 구현하기 위한 샘플 코드(그림)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!