Factory Method pattern 工厂方法模式 (自用)

工厂方法模式(Factory Method Pattern)是一种常用的创建型设计模式,它提供了一种创建对象的方式,但实际的实例化过程被推迟到了子类中。

当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。

定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。

这种模式允许类在不明确指定其对象具体类型的情况下,将对象创建的任务委托给其子类处理。

实例1:

// 假设有一个Product接口,它代表了一类产品,同时有多种具体的产品类。
// 此外,我们还需要一个创建这些产品的工厂接口,具体的工厂类将决定实例化哪个产品类。


// 产品接口
interface Product {
    void performAction();
}

// 具体产品类1
class ConcreteProductA implements Product {
    @Override
    public void performAction() {
        System.out.println("执行了产品A的操作");
    }
}

// 具体产品类2
class ConcreteProductB implements Product {
    @Override
    public void performAction() {
        System.out.println("执行了产品B的操作");
    }
}

// 创建者(工厂)抽象类
abstract class Creator {
    // 定义工厂方法,返回一个产品对象
    abstract Product createProduct();

    // 演示产品的功能
    public void demoProduct() {
        Product product = createProduct();
        product.performAction();
    }
}

// 具体创建者类1
class ConcreteCreatorA extends Creator {
    @Override
    Product createProduct() {
        return new ConcreteProductA();  // 实例化产品A
    }
}

// 具体创建者类2
class ConcreteCreatorB extends Creator {
    @Override
    Product createProduct() {
        return new ConcreteProductB();  // 实例化产品B
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Creator creatorA = new ConcreteCreatorA();
        creatorA.demoProduct();  // 输出:执行了产品A的操作

        Creator creatorB = new ConcreteCreatorB();
        creatorB.demoProduct();  // 输出:执行了产品B的操作
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值