Java设计模式(2):简单工厂模式

来源:互联网 发布:php 九九乘法表 表格 编辑:程序博客网 时间:2024/06/03 17:25
    

简单工厂模式又叫静态工厂模式,是工厂模式三中状态中结构最为简单的。主要有一个静态方法,用来接受参数,并根据参数来决定返回实现同一接口的不同类的实例。

单例模式设计思想:

1) 首先,定义一个抽象父亲类或接口

2) 定义具体的子类来继承或实现第一步的抽象父类或接口:

3) 定义一个简单工厂类,并定义一个静态生产方法,根据传进来的type参数生成对应的具体子类。

 

 

示例:

enum ShapeTYPE{

   RECTANGLE,SQUARE,CIRCLE;

}//首先,创建一个接口。

 

interface Shape {

   void draw();

}

//创建实现接口的实体类。

class Rectangle implements Shape {

   @Override

   public void draw() {

      System.out.println("绘制矩形...");

   }

}

 

class Square implements Shape {

 

   @Override

   public void draw() {

      System.out.println("绘制正方形...");

   }

}

 

class  Circle implements Shape {

 

   @Override

   public void draw() {

      System.out.println("绘制圆形...");

   }

}

class ShapeFactory {

   //使用 getShape 方法获取形状类型的对象

   public Shape getShape(ShapeTYPE shapeType){

      if(shapeType == null){

         return null;

      }

      if(shapeType==ShapeTYPE.CIRCLE){

         return new Circle();

      } else if(shapeType==ShapeTYPE.RECTANGLE){

         return new Rectangle();

      } else if(shapeType==ShapeTYPE.SQUARE){

         return new Square();

      }

      return null;

   }

}

 

public class FactoryPatternDemo {

 

   public static void main(String[] args) {

      ShapeFactory shapeFactory = new ShapeFactory();

 

      //获取 Circle 的对象,并调用它的 draw 方法

      Shape shape1 = shapeFactory.getShape(ShapeTYPE.CIRCLE);

      //调用 Circle 的 draw 方法

      shape1.draw();

 

      //获取 Rectangle 的对象,并调用它的 draw 方法

      Shape shape2 = shapeFactory.getShape(ShapeTYPE.RECTANGLE);

 

      //调用 Rectangle 的 draw 方法

      shape2.draw();

 

      //获取 Square 的对象,并调用它的 draw 方法

      Shape shape3 = shapeFactory.getShape(ShapeTYPE.SQUARE);

      //调用 Square 的 draw 方法

      shape3.draw();

   }

}

 

 

0 0
原创粉丝点击