美文网首页程序员Java设计模式
设计模式系列-简单工厂模式

设计模式系列-简单工厂模式

作者: 特立独行的猪手 | 来源:发表于2017-03-29 19:04 被阅读256次

JAVA设计模式系列:

定义

简单工厂模式又叫做静态工厂方法模式,是常用的实例化对象模式。

角色

  • 工厂类:工厂类包含了负责创建所有实例具体逻辑;可以直接被外界调用来创建所需要的对象。

  • 抽象产品类:工厂类所创建对象的父类。

  • 具体产品类:工厂类创建的具体对象。

实现

这里简单写一个示例来实现普通工厂模式。

类图

抽象产品类

public interface IFruit {

    void get();
}

定义了一个抽象水果类IFruit,其中包含一个get()

具体产品类

public class Apple implements IFruit {

    @Override
    public void get() {
        System.out.println("I am a apple.");
    }
}

public class Orange implements IFruit {

    @Override
    public void get() {
        System.out.println("I am a orange." );
    }
}

定义了2个具体水果类AppleOrange分别实现了IFruitget()方法。

工厂类

public class FruitFactory {

    public static IFruit getFruit(String type) {

        IFruit ifruit = null;
        if ("apple".equals(type)) {
            ifruit = new Apple();
        } else if ("orange".equals(type)) {
            ifruit = new Orange();
        }
        return ifruit;
    }
}

工厂类包含一个静态方法getFruit(),功能是:根据不同的type返回不同的水果实例。

测试

    public static void main(String[] args) {

        IFruit apple = FruitFactory.getFruit("apple");
        IFruit orange = FruitFactory.getFruit("orange");

        apple.get();
        orange.get();
    }

分别调用水果工厂FruitFactory类来实例化2个不同的水果实例。运行结果:

I am a apple.
I am a orange.

总结

  • 优点:可以隐藏具体类名称,提供参数给使用者直接调用;避免直接实例化对象,无需准备构造函数参数。

  • 缺点:在增加新产品的时候,必须修改工厂类,违背了开放封闭原则。

JAVA设计模式系列:

相关文章

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

  • iOS设计模式(5)策略模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(6)模板模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(7)建造者模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(4)抽象工厂模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(8)外观模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

网友评论

    本文标题:设计模式系列-简单工厂模式

    本文链接:https://www.haomeiwen.com/subject/ayjyottx.html