简单工厂模式

发布时间:2017-3-31 8:30:58 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"简单工厂模式 ",主要涉及到简单工厂模式 方面的内容,对于简单工厂模式 感兴趣的同学可以参考一下。

 

简单工厂模式定义

简单工厂模式(Simple Factory Pattern),属于创建型模式,由于用于创建实例的方法是静态(static)方法,所以也被称为静态工厂方法(Static Factory Method)。简单工厂模式可以根据参数的不同返回不同类的实例。专门定义一个类来负责创建其他类的实例,而被创建的实例基本都有共同的父类。

简单工厂模式适用环境

1.创建产品的工厂类负责创建的对象比较少,因此不会造成工厂方法中的业务逻辑太复杂

2.客户端只知道传入工厂的类的参数,对于方法内如何创建对象不关心

UML类图解释

Product:产品接口

ProductA:具体产品A

ProductB:具体产品B

ProductC:具体产品C

ProductFactory:创建产品工厂

样例代码

package com.sedion.mynawang.Chapter01_SimpleFactoryPattern;

/**
 * 产品接口
 * @auther mynawang
 * @create 2016-12-28 16:58
 */
public interface Product {
}

  

package com.sedion.mynawang.Chapter01_SimpleFactoryPattern;

/**
 * 产品A
 * @auther mynawang
 * @create 2016-12-28 16:59
 */
public class ProductA implements Product{
}

  

package com.sedion.mynawang.Chapter01_SimpleFactoryPattern;

/**
 * 产品B
 * @auther mynawang
 * @create 2016-12-28 16:59
 */
public class ProductB implements Product{
}

  

package com.sedion.mynawang.Chapter01_SimpleFactoryPattern;

/**
 * 产品C
 * @auther mynawang
 * @create 2016-12-28 16:59
 */
public class ProductC implements Product{
}

  

package com.sedion.mynawang.Chapter01_SimpleFactoryPattern;


import java.util.logging.Logger;

/**
 * 工厂类,用来生产产品(简单工厂类||静态工厂类)
 * @auther mynawang
 * @create 2016-12-28 17:04
 */
public class ProductFactory {

    private static Logger logger = Logger.getLogger("ProductFactory_log");

    public static Product creatProduct(String productType) {
        Product product = null;
        if ("proA".equals(productType)) {
            product = new ProductA();
            logger.info("简单工厂==》创建了ProductA");
        } else if ("proB".equals(productType)) {
            product = new ProductB();
            logger.info("简单工厂==》创建了ProductB");
        } else if ("proC".equals(productType)) {
            product = new ProductC();
            logger.info("简单工厂==》创建了ProductC");
        } else {
            logger.info("简单工厂==》没有这样的产品");
        }

上一篇:javascript 中 Promise的使用
下一篇:Delaunay剖分与平面欧几里得距离最小生成树

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款