Java factory mode introduction, Java factory mode Introduction
The factory mode mainly provides a transitional interface for creating objects, so that the specific process of creating objects is blocked and isolated to improve flexibility.
In the following sections, we will show you how to create objects in factory mode.
Objects Created in factory mode are shape objects, such as circles and rectangles.
First, we design interfaces that represent shapes.
public interface Shape { void draw();}
Then, we create a specific class to implement this interface.
Rectangle. java
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); }}
Square. java
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); }}
Circle. java
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); }}
The core factory model is the factory type. The following code creates a Shape object of the factory class.
This ShapeFactory class creates a Shape object based on the string value passed to the getShape () method. If the string value is a Circle, it creates a Circle object.
public class ShapeFactory { //use getShape method to get object of type shape public Shape getShape(String shapeType){ if(shapeType == null){ 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; }}
The following code provides the mian method, which uses the factory class to pass an information, such as a type, to obtain the object of a specific class.
public class Main { public static void main(String[] args) { ShapeFactory shapeFactory = new ShapeFactory(); //get an object of Circle and call its draw method. Shape shape1 = shapeFactory.getShape("CIRCLE"); //call draw method of Circle shape1.draw(); //get an object of Rectangle and call its draw method. Shape shape2 = shapeFactory.getShape("RECTANGLE"); //call draw method of Rectangle shape2.draw(); //get an object of Square and call its draw method. Shape shape3 = shapeFactory.getShape("SQUARE"); //call draw method of circle shape3.draw(); }}
Address: http://www.manongjc.com/article/135.html