创建型模式---工厂模式

Posted waynelsh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建型模式---工厂模式相关的知识,希望对你有一定的参考价值。

从简单到复杂有简单工厂模式-->工厂方法模式-->抽象工厂模式

简单工厂模式(Simple Factory Pattern)

定义

又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

产生背景

当一个模块只需要一个工厂类,没必要把工厂类也抽象出来的时候,使用静态方法就行。

UML图

技术分享图片

代码

public class SimpleDrinkFactory {

    public static <T extends Drink> T getDrink(Class<T> c) {
        //定义一个饮料
        Drink drink = null;

        try {
            drink = (Drink) Class.forName(c.getName()).newInstance();
        } catch (Exception e) {
            System.out.println("生产饮料失败!");
        }

        return (T) drink;
    }

}

使用场景:

  1. 日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。
  2. 数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。
  3. 设计一个连接服务器的框架,需要三个协议,"POP3"、"IMAP"、"HTTP",可以把这三个作为产品类,共同实现一个接口。

以上是关于创建型模式---工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式 - 创建型模式_抽象工厂模式

设计模式 - 创建型模式_抽象工厂模式

设计模式 - 创建型模式_抽象工厂模式

设计模式 - 创建型模式_工厂方法模式

设计模式 - 创建型模式_工厂方法模式

设计模式 - 创建型模式_工厂方法模式