工厂模式是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
类图
代码实现
1、图形类接口
public interface Shape{
void draw();
}
2、创建圆形、方形、三角形实现类
public class Rectangle implements Shape{
public void draw(){
"画三角形"
}
}
public class Square implements Shape{
public void draw(){
"画方形"
}
}
public class Circle implements Shape{
public void draw(){
"画圆形"
}
}
3、创建工厂
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;
}
}
4、使用工厂获取类的对象
public class FactoryPatternDemo{
public static void main(){
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();
}
}