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();
 
   }
}

 

posted @ 2018-10-29 21:54  huanggy  阅读(228)  评论(0编辑  收藏  举报