简单工厂模式是一种创建对象的设计模式,它通过一个工厂类来封装对象的创建过程,客户端无需直接调用具体的构造函数来创建对象,只需要通过工厂类来创建对象。
在Java中,应用简单工厂模式可以按照以下步骤进行:
-
创建一个抽象产品类,定义产品的共同属性和方法。
-
创建具体产品类,继承抽象产品类,并实现其定义的方法。
-
创建一个工厂类,用于创建具体产品对象。工厂类通常包含一个静态方法,根据传入的参数来创建不同的产品对象。
-
在客户端代码中,通过调用工厂类的静态方法来创建具体产品对象。
下面是一个简单的示例,使用简单工厂模式创建不同形状的对象:
// 抽象产品类 abstract class Shape { public abstract void draw(); } // 具体产品类 class Rectangle extends Shape { @Override public void draw() { System.out.println("Draw a rectangle"); } } class Circle extends Shape { @Override public void draw() { System.out.println("Draw a circle"); } } // 工厂类 class ShapeFactory { public static Shape createShape(String shapeType) { if (shapeType.equalsIgnoreCase("rectangle")) { return new Rectangle(); } else if (shapeType.equalsIgnoreCase("circle")) { return new Circle(); } else { return null; } } } // 客户端代码 public class Main { public static void main(String[] args) { Shape rectangle = ShapeFactory.createShape("rectangle"); rectangle.draw(); Shape circle = ShapeFactory.createShape("circle"); circle.draw(); } }
运行上述代码,将输出:
Draw a rectangle Draw a circle
在上面的示例中,抽象产品类是Shape
,具体产品类有Rectangle
和Circle
。工厂类ShapeFactory
包含一个静态方法createShape
,根据传入的参数来创建不同的具体产品对象。客户端通过调用工厂类的静态方法来创建产品对象,并调用其方法实现相应的功能。