12、简单工厂模式(Simple Factory)
简单工厂模式是类的创建模式,又叫做静态工厂方法模式(Static Factory Method)。
12.1、工厂模式的几种形态
工厂模式专门负责将大量有公共接口的类实例化。
形态:
简单工厂模式Simple Factory(静态工厂方法模式Static Factory Method Pattern)、
工厂方法模式Factory Method(多态性工厂模式Polymorphic Factory或虚拟构造子模式Virtual Constructor)、
抽象工厂模式Abstract Factory(工具箱模式Kit、Toolkit)
12.2 引入
12.3 简单工厂模式的结构
简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例。
结构:
工厂类负责创建所有的产品,所有的产品都实现一个共有的接口。
角色:
工厂类角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体java类实现。
抽象产品角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或他们的共同接口。抽象产品角色可以用一个java接口或者java抽象类实现。
具体产品角色:工厂方法模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体的java类实现。
12.4简单工厂模式的实现
多层次的产品结构
在真实的系统中,产品可以形成复杂的等级结构,比如在树结构上有多个抽象产品和具体产品。这时候,简单工厂模式采取的就是以不变应万变的策略,一律使用同一个工厂类。
这样设计的好处就是设计简单,产品类的等级结构不会反映到工厂类中来,从而产品类的等级结构的变化也不会影响到工厂类。
这样做的缺点是,增加新的产品必将导致工厂类的修改。
使用接口或者抽象类
如果模式所产生的具体产品类彼此之间没有共同的商业逻辑,那么抽象类产品角色就可以有一个接口扮演;相反,如果这些具体产品类彼此之间确实有共同的商业逻辑,那么这些共有的逻辑就应当移到抽象角色里面,这就意味着抽象角色应当由一个抽象类扮演。在一个类型的等级结构里面,共同的代码应当尽量向上移动,以达到共享的目的。
多个工厂方法
每一个工厂类可以有多于一个的工厂方法,分别负责创建不同的产品对象。
抽象产品角色的省略
如果系统仅有一个具体产品角色的话,那么就可以省略掉抽象产品角色。
工厂角色与抽象角色的合并
在有些情况下,工厂角色可以由抽象产品角色扮演。一个抽象产品类同时是子类的工厂
三个角色全部合并
如果抽象产品角色已经被省略,而工厂角色就可以与具体产品角色合并。换言之,一个产品类为自身的工厂。显然,三个原本独立的角色:工厂角色、抽象产品以及具体产品角色都已经合并成为一个类,这个类自行创建自己的实例。
产品对象的循环使用和登记式的工厂方法
分享到:
相关推荐
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
介绍的是工厂模式 包括简单工厂模式、工厂方法模式、抽象工厂模式 包括PPT和代码
java工厂设计模式之简单工厂实例以及介绍,程序已经运行过能正常跑通
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂
Java设计模式,简单工厂的Demo,具体的思想与实现有很多讲得很好的老师,我是看厉风行老师的视频学的,讲得不错,简单易懂
java设计模式之简单工厂视频
java工厂模式-简单工厂模式:入门级工厂模式使用介绍,附案例说明
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...
Java设计模式04简单工厂模式.pdf
简单工厂模式示例 有注释 需要的朋友可以下载研究 很简单很基础的一个设计模式
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
JAVA简单工厂创立性模式介绍,包含简单工厂,工厂方法,抽象工厂。举例说明让您更好理解!
Java实现的工厂模式,抽象工厂,工厂方法模式
Java设计模式 - 简单工厂 & 工厂方法(构建工厂)源码:FactoryModel - 详情:https://blog.csdn.net/Dream_Weave/article/details/83989879
java设计模式之抽象工厂模式实例,希望对大家有所帮助。
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。下面我主要通过一个简单的实例说明简单工厂及其优点。 单态模式的定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有...
Java简单工厂模式和传统模式实现对比,通过简单实例比对两种方式差异,体现传统模式的弊端及工厂模式优势。利于初学者后续接触spring
这是代码,介绍请查看以下博客地址: http://www.cnblogs.com/homg/p/3548110.html代码乱码请使用utf-8编码。
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分