码迷,mamicode.com
首页 > 其他好文 > 详细

02 简单工厂模式

时间:2017-04-03 11:42:33      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:逻辑   实用   tor   method   工厂方法模式   工厂   实例   理解   alt   

简单工厂模式:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是工厂方法模式和抽象工厂模式的基础和初步实现。

 

技术分享

                  简单工厂模式的UML类图:

 

 从图中我们可以看到,简单工厂模式有三种角色。

1、简单工厂(SimpleProductFactory)

    简单工厂角色负责创建所有实例

2、抽象产品(Product)

  描述所有实例的所共有的公共接口

3、具体产品(ConcreteProduct)

  具体产品是简单工厂模式的创建目标,所有创建的对象充当这个角色的某个具体类的实例

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

public class ProductClient {
    public static void main(String[] args) {
        Product product1 = ProductFactory.createProduct("A");
        Product product2 = ProductFactory.createProduct("B");
        product1.product();
        product2.product();
    }
}

class ProductA implements Product {

    @Override
    public void product() {
        System.out.println("生产产品A");
    }

}

class ProductB implements Product {

    @Override
    public void product() {
        System.out.println("生产产品B");
    }

}

interface Product {
    public void product();
}

class ProductFactory {
    private ProductFactory() {
    }

    public static Product createProduct(String productName) {
        if (productName == null) {
            return null;
        }
        if (productName.equals("A")) {
            return new ProductA();
        } else if (productName.equals("B")) {
            return new ProductB();
        } else {
            return null;
        }
    }
}

 

02 简单工厂模式

标签:逻辑   实用   tor   method   工厂方法模式   工厂   实例   理解   alt   

原文地址:http://www.cnblogs.com/sunTin/p/6661376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!