何为工厂模式?
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
介绍
比如:一个用户想要吃番茄炒蛋,然后自己实现一套流程,做了一盘菜。这就是一个固定的方法。但是第二天呢又想要吃青椒炒肉,那可不可以到饭店呢,可以,只需要告诉饭店,需要吃什么就行,这就是工厂
而我们要做的就是把做不同菜的方法整合起来,继承于同一个抽象父类,在工厂中可以选择具体调用哪个子类,就是工厂模式
实现
首先有一个接口类和一些实现接口的实体类,然后定义一个工厂类将实现接口的实体类整合
实现
步骤1
/*** 定义一个接口*/
public interface Shape {void draw();
}
步骤2
/*** 定义方法*/
public class Circle implements Shape {@Overridepublic void draw() {System.out.println("Inside Circle::draw() method.");}
}
/*** 定义方法*/
public class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("Inside Rectangle::draw() method.");}
}
/*** 定义方法*/
public class Square implements Shape {@Overridepublic void draw() {System.out.println("Inside Square::draw() method.");}
}
步骤3
/*** 建立一个工厂*/
public class ShapeFactory {//定义方法获取形状类型的对象public Shape getShape(String shapeType){if(StringUtil.isEmpty(shapeType)){return null;}if(shapeType.equalsIgnoreCase("CIRCLE")){return new Circle();}else if(shapeType.equalsIgnoreCase("RECTANGLE")){return new Rectangle();}else if(shapeType.equalsIgnoreCase("SQUARE")){return new Square();}return null;}
}
步骤5
/*** 使用该工厂*/
public class FactoryPatternDemo {public static void main(String[] args) {//实例化工厂ShapeFactory shapeFactory = new ShapeFactory();//获取Circle的对象,并调用它的draw方法Shape circle = shapeFactory.getShape("CIRCLE");circle.draw();//获取Rectangle的对象,并调用它的draw方法Shape Rectangle = shapeFactory.getShape("Rectangle");Rectangle.draw();//获取Square的对象,并调用它的draw方法Shape Square = shapeFactory.getShape("SQUARE");Square.draw();}
}