设计模式 - 简单工厂模式

本文介绍了简单工厂模式,一种创建型设计模式,用于封装对象的创建过程。简单工厂模式通过一个静态工厂类来创建不同类型的对象,使得客户端无需关注具体的创建逻辑。文章列举了其实现步骤,包括抽象产品类、具体产品类和静态工厂类的代码示例,并讨论了其优点(代码简洁)和缺点(扩展困难)。此外,还提及了简单工厂模式在JDK中的应用,如`Calendar.getInstance()`方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、介绍

  • 简单工厂模式属于创建型模式,是工厂模式的一种,是工厂模式中最简单实用的模式
  • 定义了一个创建对象的类,由这个类来封装实例化对象的行为
  • 简单工厂也叫静态工厂模式,是工厂方法模式的简化

二、实现

1、简单工厂实现
Ⅰ、代码
// 抽象产品
public abstract class Product { 
    //产品类的公共方法 
    public void method1(){ //业务逻辑处理 }

    //抽象方法 
    public abstract void method2();
}

// 具体产品1
public class ConcreteProduct1 extends Product {
    @Override
    public void method2() {
       //业务逻辑处理 
    }
}
    
// 具体产品2    
public class ConcreteProduct2 extends Product {
    @Override
    public void method2() {
       //业务逻辑处理 
    }
}

// 具体工厂类    
public class ConcreteCreator {
    // 静态方法
    public static <T extends Product> T createProduct(Class<T> c) {
        Product product = null;
        try {
            product = (Product) Class.forName(c.getName()).newInstance();
        } catch (Exception e) { 
            //异常处理 
        }
        return (T) product;
    }
}

public class Client {
    public static void main(String[] args) {
        // 直接使用类名调用
        Product product = ConcreteCreator.createProduct(ConcreteProduct1.class); 
    }
}
Ⅱ、优点
  • 代码更简洁,只有一个工厂类来面向多个目标实现
Ⅲ、缺点
  • 工厂类的扩展比 较困难,不符合开闭原则

三、使用场景

  • 工厂类负责创建的对象较少
  • 客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心
  • JDK中Calendar.getInstance()方法中使用的就是简单工厂模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值