抽象工厂模式是创建型设计模式之一,它提供了一种创建对象的最佳方式。
在抽象工厂模式中,接口用于创建相关或依赖对象的工厂,而不是直接实例化对象。这样,系统可以具有更好的扩展性,因为在系统中加入新的产品时无需修改已有的代码。
例如,我们可以使用抽象工厂模式来创建不同类型的汽车,如油车和电动车。我们可以使用抽象工厂来创建不同品牌的汽车,如奥迪和宝马。
这是使用java实现抽象工厂模式的一个示例:
``` // 抽象工厂接口 public interface AbstractFactory { public Car createCar(); public Battery createBattery(); }
// 具体工厂1 public class ConcreteFactory1 implements AbstractFactory { public Car createCar() { return new GasolineCar(); } public Battery createBattery() { return new LeadAcidBattery(); } }
// 具体工厂2 public class ConcreteFactory2 implements AbstractFactory { public Car createCar() { return new ElectricCar(); } public Battery createBattery() { return new LithiumIonBattery(); } }
// 汽车抽象类 public abstract class Car { public abstract void drive(); }
// 油车类 public class GasolineCar extends Car { public void drive() { System.out.println("Driving a gasoline car!"); } }
// 电动车类 public class ElectricCar extends Car { public void drive() { System.out.println("Driving an electric car!"); } }
// 电池抽象类 public abstract class Battery { public abstract void charge(); }
// 铅