03设计模式——简单工厂模式

前言:以下总结来自龙哥---左潇龙博客。

总结的很到位,附上博客链接:http://www.cnblogs.com/zuoxiaolong/p/pattern4.html

 

定义:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。

  简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

上面总共有三种类,一个是工厂类Creator,一个是产品接口IProduct,一个便是具体的产品,例如产品A和产品B,这之中,工厂类负责整个创建产品的逻辑判断,所以为了使工厂类能够知道我们需要哪一种产品,我们需要在创建产品时传递给工厂类一个参数,去表明我们想要创建哪种产品。

 

 1 /** 
 2  * 产品接口
 3  */
 4 public interface IProduct {
 5 
 6     /**
 7      * 生产产品
 8      * 时间:2018-4-13 上午11:00:38
 9      * 作者:西忒乐
10      */
11     void method();
12 }

 

 1 /** 
 2  * A产品
 3  */
 4 public class ProductA implements IProduct {
 5 
 6     @Override
 7     public void method() {
 8         System.out.println("生产A产品的方法");
 9     }
10 
11 }
/** 
 * B产品
 */
public class ProductB implements IProduct {

    @Override
    public void method() {
        System.out.println("生产B产品的方法");
    }

}
 1 /** 
 2  * 工厂类
 3  */
 4 public class Factory {
 5 
 6     /**
 7      * 生产产品
 8      */
 9     public IProduct createProduct(String productName) {
10         if (productName == null) {
11             return null;
12         }
13         if (productName.equals("A")) {
14             return new ProductA();
15         } else if (productName.equals("B")) {
16             return new ProductB();
17         } else {
18             return null;
19         }
20     }
21 }
 1 /** 
 2  * 创建工厂类
 3  */
 4 public enum Creator {
 5     INSTANCE;// public static final
 6     private Factory factory;
 7 
 8     Creator() {
 9         factory = new Factory();
10     }
11 
12     public Factory getInstance() {
13         return factory;
14     }
15 }
 1 /** 
 2  * 测试
 3  */
 4 public class Main {
 5 
 6     public static void main(String[] args) {
 7         Factory factory = Creator.INSTANCE.getInstance();
 8         IProduct product = factory.createProduct("A");
 9         product.method();
10     }
11 }

 

posted @ 2018-04-13 10:54  西忒乐的小窝  阅读(103)  评论(0编辑  收藏  举报