赞
踩
一、工厂方法模式介绍
1、工厂方法模式是一种创建型设计模式,它提供了一种将对象的创建委托给子类的方式,工厂方法模式定义了一个用于创建对象的接口,让子类决定实例化哪个类。这样可以将对象的创建逻辑和使用逻辑解耦,使得系统更加灵活。
2、工厂方法模式的核心思想是将对象的创建和使用解耦,通过将对象的创建交给子类来实现,子类可以根据需要自行选择实例化哪个类。工厂方法模式是一种面向对象的思想,它遵循了开闭原则,即对扩展开放,对修改关闭。
3、工厂方法模式的角色:
4、工厂方法模式的使用场景:
二、下面是一个简单的工厂方法模式的代码示例:
// 定义产品接口
interface Product {
void use();
}
// 具体产品A
class ConcreteProductA implements Product {
@Override
public void use() {
System.out.println("使用具体产品A");
}
}
// 具体产品B
class ConcreteProductB implements Product {
@Override
public void use() {
System.out.println("使用具体产品B");
}
}
// 定义工厂接口
interface Factory {
Product createProduct();
}
// 具体工厂A
class ConcreteFactoryA implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductA();
}
}
// 具体工厂B
class ConcreteFactoryB implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductB();
}
}
// 客户端
public class Client {
public static void main(String[] args) {
// 创建工厂A
Factory factoryA = new ConcreteFactoryA();
// 通过工厂A创建产品A
Product productA = factoryA.createProduct();
productA.use();
// 创建工厂B
Factory factoryB = new ConcreteFactoryB();
// 通过工厂B创建产品B
Product productB = factoryB.createProduct();
productB.use();
}
}
代码详解:
1、以上代码中,Product是产品接口,定义了产品的抽象方法use。ConcreteProductA和ConcreteProductB是具体产品类,实现了产品接口。
2、Factory是工厂接口,定义了创建产品的抽象方法createProduct。ConcreteFactoryA和ConcreteFactoryB是具体工厂类,实现了工厂接口,通过工厂方法createProduct创建具体产品。
3、在客户端中,首先创建工厂A,通过工厂A创建产品A,并调用产品A的方法。然后创建工厂B,通过工厂B创建产品B,并调用产品B的方法。这样,客户端与具体产品和工厂的实现解耦,并且可以灵活地替换具体产品和工厂。
三、总结
工厂方法模式是一种将对象的创建和使用解耦的设计模式,它将对象的创建交给子类来实现,从而使得系统更加灵活。工厂方法模式适用于当一个类不知道它所需要的对象的类、希望由子类来指定所创建的对象、或将创建对象的职责委托给多个工厂类中的某一个的情况。
抽象工厂模式(Abstract Factory Pattern)和工厂方法模式(Factory Method Pattern)是两种常见的创建型设计模式,它们有以下不同之处:
综上所述,抽象工厂模式和工厂方法模式在对象创建的方式和适用场景上有所差异。具体选择哪种模式取决于需求和设计目标。
如有不足,欢迎指出,期待和大家共同进步---------------------------------------------------------------------------------------------------
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。