转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9802128.html 定义
简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。
简单工厂模式提供了专门的工厂类用于创建对象,将对象的创建和对象的使用分离开,它作为一种最简单的工厂模式在软件开发中得到了较为广泛的应用;
简单工厂模式是工厂方法模式的“小弟”,它不属于23种设计模式,但在软件开发中应用也较为频繁,通常将它作为学习其他工厂模式的入门;
简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。
简介 应用实例您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现;
Hibernate 换数据库只需换方言和驱动就可以。
使用场景工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂;
客户端只知道传入工厂类的参数,对于如何创建对象并不关心。
实现:图标库设计公司欲基于Java语言开发一套图表库,该图表库可以为应用系统提供各种不同外观的图表,例如柱状图、饼状图、折线图等。设计人员希望为应用系统开发人员提供一套灵活易用的图表库,而且可以较为方便地对图表库进行扩展,以便能够在将来增加一些新类型的图表。
方案一class Chart { private String type; //图表类型 public Chart(String type) { this.type = type; if (type.equalsIgnoreCase("histogram")) { System.out.println("初始化柱状图!"); } else if (type.equalsIgnoreCase("pie")) { System.out.println("初始化饼状图!"); } else if (type.equalsIgnoreCase("line")) { System.out.println("初始化折线图!"); } } public void display() { if (this.type.equalsIgnoreCase("histogram")) { System.out.println("显示柱状图!"); } else if (this.type.equalsIgnoreCase("pie")) { System.out.println("显示饼状图!"); } else if (this.type.equalsIgnoreCase("line")) { System.out.println("显示折线图!"); } } }