Loading... # 定义 定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法`(Static Factory Method)模式`,它属于类创建型模式。 ---------- ## UML图例 ![简单工厂模式](https://s1.ax1x.com/2020/05/21/YHDekn.png) ---------- ## 实例代码 ```java // Product 抽象产品角色 abstract class Product { // 所有产品的公共业务方法 public void methodSame(){} // 声明抽象业务方法 public abstract void methodDiff(); } // ConcreteProduct 具体产品角色 public class ConcreteProductA extends Product{ //业务方法 public void methodDiff() { //业务方法的实现 } } public class ConcreteProductB extends Product{ //业务方法 public void methodDiff() { //业务方法的实现 } } // Factory 工厂角色 public class Factory { // 静态工厂方法 public static Product getProduct(String arg){ Product product = null; if (arg.equalsIgnoreCase("A")){ product = new ConcreteProductA(); }else if(arg.equalsIgnoreCase("B")){ product = new ConcreteProductB(); } return product; } } ``` 1. Factory:工厂类,它是简单工厂模式的核心,负责创建所有产品实例的内部逻辑,工厂类可以被外界直接调用,创建所需的产品对象。 2. Product:抽象产品类,它是工厂类所创建所有对象的父类(或者接口)。封装了各种产品对象的公有方法,它的引入使得工厂类只需定义一个通用的工厂方法,因为所有创建的具体产品对象都是其子类(或者实现接口的实现类)。 3. ConcreteProduct:具体产品类,它是简单工厂模式的最终创建目标,每一个具体产品类都继承(或实现)了抽象产品类。需要实现在抽象产品类中声明的抽象方法。 最后修改:2020 年 05 月 21 日 10 : 34 AM © 允许规范转载