工厂模式是一种创建模式,因为此模式提供了更好的方法来创建对象。
在工厂模式中,我们创建对象而不将创建逻辑暴露给客户端。
用工厂方法代替new操作的一种模式,工厂模式虽然会多做一些工作,但会给系统带来更大的可扩展性和尽量少的修改量。
public interface Shape {
void draw();
}
public class Square implements Shape {
public void draw(){
System.out.println("Inside Square::draw() method.");
}
}
public class Circle implements Shape {
public void draw(){
System.out.println("Inside Circle::draw() method.");
}
}
public class Rectangle implements Shape {
public void draw(){
System.out.println("Inside Rectangle::draw() method.");
}
}
public class ShapeFactory {
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;
}
}
public class TestShape {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory();
Shape shape1 = shapeFactory.getShape("CIRCLE");
shape1.draw();
Shape shape2 = shapeFactory.getShape("RECTANGLE");
shape2.draw();
Shape shape3 = shapeFactory.getShape("SQUARE");
shape3.draw();
}
}
所以以后如果使用new关键字,可以考虑使用工厂模式,可以简化开发。