| 简单工厂模式类图
 
 
 通过一个工厂类,以一个条件来创建对应的对象 复制代码//业务功能 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 produceDivide() {     return new CalcDivide();   } } 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.produceDivide();     result = createCalc.getResult(numA, numB);     System.out.println(result);   } } 
抽象工厂模式里面有几个概念:抽象工厂、实体工厂、抽象产品、实体产品
 抽象工厂:定义创建产品的抽象方法
 实体工厂:具体的创建哪种产品
 抽象产品:一个接口或基类
 实体产品:实现具体功能,或派生
 类图
 
 
 |