目录

1.特点

2.模型与结构

2.1.模型

2.2.结构图

3.代码实现

3.1.产品抽象

3.2.产品实现

3.3.产品的构建

4.应用场景


1.特点

在一个类中定义不同类型的不同实现,通过入参进行判断,生产出来的产品是什么。

2.模型与结构

2.1.模型

简单工厂模式的主要角色如下:

简单工厂(SimpleFactory):是简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
抽象产品(Product):是简单工厂创建的所有对象的父类,负责描述所有实例共有的公共接口。
具体产品(ConcreteProduct):是简单工厂模式的创建目标。

2.2.结构图

3.代码实现

3.1.产品抽象

​ //抽象产品    
​public interface Product {
​     void show(); 
​}

3.2.产品实现

​//具体产品:ProductA    
​static class ConcreteProduct1 implements Product { 
​       public void show() { 
​       System.out.println("具体产品1显示..."); 
​       }
}   
​ //具体产品:ProductB    
​static class ConcreteProduct2 implements Product {
​        public void show() { 
​           System.out.println("具体产品2显示..."); 
​       }
}

3.3.产品的构建

public class Client {
​   public static void main(String[] args) {}   
   ​final class Const {
​        static final int PRODUCT_A = 0; 
​        static final int PRODUCT_B = 1; 
​        static final int PRODUCT_C = 2; 
    ​}    
    ​static class SimpleFactory {
​        public static Product makeProduct(int kind) {
​           switch (kind) {
​                case Const.PRODUCT_A:
​                    return new ConcreteProduct1();
​                case Const.PRODUCT_B: 
​                   return new ConcreteProduct2(); 
​           } 
​           return null;
​      } 
   }
}

4.应用场景

对应的产品比较少的情况,考虑到使用简单工厂的方式。
使用简单工厂模式的客户端只需要知道传入工厂的参数,不需要关系如何创建对象的逻辑,可以方便的创建所需要的产品。
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐