简单工厂模式是类的创建模式,又叫做静态工厂方法模式(Static Factory Method Pattern)
目的: 封装对象的创建过程,用户只需要传入指定的参数即可获取相应的实例。
优点:封装了实例的创建过程,客户端只需要消费实例;进行了责任分割。
有一个水果店,中出售两种水果;一种是苹果,一种是橘子;客户只需要指定自己需要的什么什么类型的苹果或者橘子就可以了,而不必知道这些水果是怎么种植,运输加工的。
/** * 水果接口 * @author Lenovo * @version $Id: Fruit.java, v 0.1 2014年9月20日 下午4:42:48 Lenovo Exp $ */ public interface Fruits { /** * 获取水果的名称 * * @return 水果的名称 */ public String getName(); }
/** * 定义苹果类 * @author Lenovo * @version $Id: Apple.java, v 0.1 2014年9月20日 下午4:45:18 Lenovo Exp $ */ public class Apple implements Fruits { /** * 水果的名称 */ private String name; /** * Getter method for property <tt>name</tt>. * * @return property value of name */ public String getName() { return name; } /** * Setter method for property <tt>name</tt>. * * @param name value to be assigned to property name */ public void setName(String name) { this.name = name; } public Apple(String name) { super(); this.name = name; } } /** * * @author Lenovo * @version $Id: Orange.java, v 0.1 2014年9月20日 下午4:53:58 Lenovo Exp $ */ public class Orange implements Fruits { /** * 橘子的名称 */ String name; /** * Getter method for property <tt>name</tt>. * * @return property value of name */ public String getName() { return name; } /** * Setter method for property <tt>name</tt>. * * @param name value to be assigned to property name */ public void setName(String name) { this.name = name; } public Orange(String name) { super(); this.name = name; } } /** * * 水果简单工厂 * 简单工厂模式,就是根据传入的参数决定创建出哪一个产品 * * 优点: * 简单工厂模式的核心就是工厂类。 这个类包含必要的逻辑判断,可以决定在什么时候创建什么产品;而客户端则可以免除直接创建产品的对象 * 的责任,而仅仅负责消费产品。 * 缺点: * 当产品类有多层次的等级结构时,只有工厂类以不变应万变。 * 由于简单工厂模式使用的是静态方法作为工厂方法,而静态方法无法由子类继承,因此工厂角色无法形成基于继承的等级结构。 * @author Lenovo * @version $Id: FruitFactory.java, v 0.1 2014年9月20日 下午4:41:53 Lenovo Exp $ */ public class FruitFactory { enum FRUITS { APPLE, ORANGE; } public static Fruits factory(FRUITS type) { switch (type) { case APPLE: return new Apple("花牛苹果"); case ORANGE: return new Orange("秋山蜜柑"); default: throw new UnsupportedOperationException(); } } } /** * * @author Lenovo * @version $Id: Client.java, v 0.1 2014年9月20日 下午5:00:10 Lenovo Exp $ */ public class Client { public static void main(String[] args) { Fruits f = FruitFactory.factory(FRUITS.APPLE); LoggerUtils.info(f.getName()); Fruits orange = FruitFactory.factory(FRUITS.ORANGE); LoggerUtils.info(orange.getName()); } }
相关推荐
java 设计模式 Facade外观模式 Simple Factory 简单工厂模式,代码有点罗嗦,不过可移植性很强
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一...
Java设计模式之一简单工厂模式(SimpleFactory)源码
设计模式 t01SimpleFactory
设计模式-简单工厂 demo
GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple Factory)看为工厂方法模式的一种特例,两者归为一类。 两者皆可,在...
java设计模式 简单工厂模式详解 simple factory static pattern
六个创建型模式 六个创建型模式 简单工厂模式-Simple Factory Pattern 工厂三兄弟之简单工厂模式(一) 工厂三兄弟之简单工厂模式(二) 工厂三兄弟之简单工厂模式(三) 工厂三兄弟之简单工厂模式(四) 工厂方法...
是因为 SimpleFactory内,生产Sample和生产Sample2的方法之间有一定联系,所以才要将这两个方法捆绑在一个类中,这个工厂类有其本身特征,也许制造过程是统一的,比如:制造工艺比较简单,所以名称叫SimpleFactory。...
简单工厂(simplefactory) 动态工厂(dynamic) 抽象工厂(abstract) 单例模式(singleton) 建造者模式(builder) 原型模式(prototype) 结构型模式(structure) 适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite)...
java 设计模式 bridge CommandPattern factoryMethod simpleFactory
这主要很快地让你了解工厂设计模式,java里面Factory模式的设计过程
包括:ccFactoryMethod工厂方法-模式进阶.pdf 、 ccFactory简单工厂-设计模式的入门级模式.pdf 、chp12简单工厂(Simple Factory)模式.pdf、JAVA简单工厂创立性模式介绍.pdf四部分。
简单工厂(simplefactory) 动态工厂(dynamic) 抽象工厂(abstract) 单例模式(singleton) 建造者模式(builder) 原型模式(prototype) 结构型模式(structure) 适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) ...
参考书籍(推荐): 《Java设计模式 - 刘伟》 , 《图解设计模式 - [日]结城浩》 创建型模式 :check_mark:简单工厂模式( Simple Factor Pattern ) :memo: , :check_mark:工厂方法模式( Factory Method Pattern )...
简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory) 建造者模式(Builder) 原型模式(Prototype) 结构型 适配器模式(Adapter) 桥接模式(Bridge) 组合模式...
23种设计模式演示代码文件结构图gof23 |- creational(创建型模式) |- simplefactory 简单工厂模式案例 |- factorymethod 工厂方法模式案例 |- abstractfactory 抽象工厂模式案例 |- builder 建造者模式案例 |- ...
实用的 java 设计原则 和 设计模式,阅读完本书,可以了解java的api背后的设计思想和理念。1000多页巨著,只有超值,没有之一。 第1章 模式的简史和形而上学 第2章 统一建模语言UML简介 第12章 简单工厂\(Simple ...
对比了 工厂类 factory pattern 和 simple factory pattern