设计模式(二)——工厂模式

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

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

public interface IFruit {
    void 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." );
    }
}

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

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;
    }
}

测试

public static void main(String[] args) {

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

        apple.get();
        orange.get();
    }
I am a apple.
I am a orange.

总结

  • 优点:可以隐藏具体类名称,提供参数给使用者直接调用;避免直接实例化对象,无需准备构造函数参数。
  • 缺点:在增加新产品的时候,必须修改工厂类,违背了开放封闭原则。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是工厂模式 工厂模式就是将一个个类实例化的时候,通过一个工厂(管理类)来统一实例化。 比如:我现在是雪糕厂长,...
    IT废柴阅读 648评论 0 0
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,995评论 1 15
  • 参考资料:菜鸟教程之设计模式 设计模式概述 设计模式(Design pattern)代表了最佳的实践,通常被有经验...
    Steven1997阅读 1,208评论 1 12
  • 本来不想写这个标题的,可是一时之间也想不出其他题目,就这样算了。大家不必太过诧异,我不是写自小遗失或被抛弃什么的曲...
    何阿禾阅读 562评论 0 1