【设计模式】1.1工厂方法模式 Factory Method(创建型-类)

文章介绍了工厂方法模式,一种设计模式,允许子类决定实例化的具体类。通过接口和工厂类,解决了不确定何时或创建何种产品的问题,实现了代码的灵活性和解耦。

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

意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类(接口类)的实例化延迟到其子类。

适用性:

当一个类不知道它所必须创建的对象的类的时候。(工厂不知道具体创建产品A还是产品B)

当一个类希望由它的子类来指定它所创建的对象的时候。(用工厂A和工厂B来创建产品)

当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

类图:

/**
    工厂方法模式
/*
// FactoryMethod工厂方法类 
public class FactoryMethod{
	public static void main(String[] args){
        // 创建一个工厂
        Factory factoryA = new FactoryA();
        
        // 创建一个产品
		Product productA = factoryA.createProduct()  // 编译看=左边(是否有对应的方法),运行看=右边(实际是否有对应的方法)
		productA.info(); // 具体产品的方法




        // 创建一个工厂
        Factory factoryB = new FactoryB();
        
        // 创建一个产品
		Product productB = factoryB.createProduct()
		productB.info(); // 具体产品的方法

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

// ProductA 实现 Product 产品接口
class ProductA implements Product{
    // 实现抽象产品类中的抽象方法
	@Override
	public void info(){
		System.out.println("产品A")
	
	}
}

// ProductB 实现 Product 产品接口
class ProductB implements Product{
    // 实现抽象产品类中的抽象方法
	@Override
	public void info(){
		System.out.println("产品B")
	}
}

// Factory 工厂接口
interface Factory{
	public Product createProduct();
}

// FactoryA 实现 工厂接口
class FactoryA implements Factory{
      @Override
      public Product createProduct(){
        return new ProductA();
      }
}

// FactoryB 实现 工厂接口
class FactoryB implements Factory{
     @Override
      public Product createProduct(){
        return new ProductB();
      }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值