工厂方法模式
概述
在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。
意图
定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
生活中的例子
工厂方法定义一个用于创建对象的接口,但是让子类决定实例化哪个类。压注成型演示了这种模式。塑料玩具制造商加工塑料粉,将塑料注入到希望形状的模具中。玩具的类别(车,人物等等)是由模具决定的。
工厂方法解说
在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节。这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。在Factory Method模式中,工厂类与产品类往往具有平行的等级结构,它们之间一一对应。
zmo_xu在这里举一个简单的例子:核心工厂就好比KFC的总店,其不在负责鸡块,汉堡的生成,而是交给加盟的分店去生成,总店(核心类)仅仅负责给出分店加工食品所必须经过的步骤(必须实现的接口)而不基础食品制作(实例化).这样在不修改总店的情况下就可以直接接受新的加盟分店[不知道这样理解行得通不呵呵]
现在我们考虑一个日志记录的例子(这里我们只是为了说明Factory Method模式,实际项目中的日志记录不会这么去做,也要比这复杂一些)。假定我们要设计日志记录的类,支持记录的方法有FileLog和EventLog两种方式。在这里我们先不谈设计模式,那么这个日志记录的类就很好实现了:
[未完待续]
分享到:
相关推荐
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
java设计模式中的单例模式,而单例模式又分为饿汉模式和懒汉模式
java设计模式--工厂模式 HeadFirst 书中的源代码
java设计模式-图解-附代码
java设计模式------------------------------------建造者模式
java设计模式视频教程-代理模式, 深层了解java的设计模式
Java设计模式-图解-附代码,举例子的方式剖析所有设计模式,更容易理解。
JAVA设计模式例程-工厂模式-的例程,看完以后基本上能对JAVA上实现简单工厂能有所了解,简单工厂还是比较容易滴,而且也是较为常用的一种设计模式。
JAVA设计模式例程-工厂模式,一个实例,正在学习设计模式的朋友可看一下,看完了后应该对工厂模式有所了解了。
设计模式--工厂模式java例子
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是工厂方法模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
JAVA设计模式--程序设计--反射--注解--泛型
JAVA-设计模式-创建型模式-工厂模式
java设计模式之抽象工厂模式,实例----手机工厂,一个简单的例子,有助于理解抽象工厂模式。
logo 14模板方法模式:抽象类定义final方法模板方法模式:抽象类定义final方法 设计模式(JAVA语言实现)--20种设计模式附带源码PPT模板全文共22页,当前为第15页。 logo 15观察者模式:观察者接口和类、主题接口...
java常用设计模式-工厂模式