工厂模式(FactoryPattern)

工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

工厂模式提供了一种将对象的实例化过程封装在工厂类中的方式。通过使用工厂模式,可以将对象的创建与使用代码分离,提供一种统一的接口来创建不同类型的对象。

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

优缺点

优点包括:

  • 可以将对象的创建和使用解耦,从而提高系统的灵活性和可维护性。
  • 工厂模式可以隐藏对象的创建细节,使客户端只关心对象的使用,从而降低系统的复杂度。
  • 工厂模式可以通过扩展工厂类或增加新的工厂类来添加新的产品,从而提高系统的扩展性和可维护性。

缺点包括:

  • 工厂模式会增加系统的类和对象的个数,从而增加系统的复杂度。
  • 工厂模式需要额外的工作量来创建和维护工厂类和产品类,从而增加系统的开发成本。
  • 工厂模式可能会降低系统的性能,因为客户端需要通过调用工厂方法来创建对象,从而增加了系统的开销。

应用实例

您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。

代码实现

  1. 创建一个汽车接口
public interface Car {
    void show();
}
  1. 创建两个汽车接口的实现类
public class BenzCar implements Car {

    @Override
    public void show() {
        System.out.println("奔驰。。。");
    }
}
public class BmwCar implements Car {

    @Override
    public void show() {
        System.out.println("宝马。。。");
    }
}
  1. 创建一个工厂,生成基于给定信息的实现类的对象
public class CarFactory {

    public static Car getCarShow(String name) {
        if ("benz".equals(name)){
            return new BenzCar();
        } else if ("bmw".equals(name)) {
            return new BmwCar();
        } else {
            return null;
        }
    }
}
  1. 使用该工厂,通过传递类型信息来获取实现类的对象
public class FactoryPatternDemo {

    public static void main(String[] args) {
        Car benz = CarFactory.getCarShow("benz");
        benz.show();

        Car bmw = CarFactory.getCarShow("bmw");
        bmw.show();
    }
}
  1. 执行程序,输出结果

在这里插入图片描述

你可能感兴趣的:(设计模式,java,简单工厂模式)