java 设计模式 ---- 工场模式
官方描述: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类
土话描述: 先把所有的情况设先计出来, 后面根据条件实现哪种情况
比如我想找女朋友, 喜欢的类型可能是: 屁股大的, 胸挺的, 脸蛋园的, 同事里面这几种类型都有, 后面我妈说找个屁股大的, 那我就选了小方.....
创建一个接口
public interface Shape { void draw(); }
实例类: 圆
public class Circle implements Shape { @Override public void draw() { System.out.println("Inside Circle::draw() method."); } }
实例类: 矩形
public class Rectangle implements Shape { @Override public void draw() { System.out.println("Inside Rectangle::draw() method."); } }
创建工场
由工场来创建具体的图形
public class ShapeFactory { //使用 createShape 方法获取形状类型的对象 public Shape createShape(String shapeType){ if(shapeType == null){ return null; } if(shapeType.equalsIgnoreCase("CIRCLE")){ return new Circle(); }
if(shapeType.equalsIgnoreCase("RECTANGLE")){ return new Rectangle(); } return null; } }
使用工场
public class FactoryPatternDemo { public static void main(String[] args) { ShapeFactory shapeFactory = new ShapeFactory(); //获取 Circle 的对象,并调用它的 draw 方法 Shape shape1 = shapeFactory.getShape("CIRCLE"); //调用 Circle 的 draw 方法 shape1.draw(); } }