设计模式--工厂模式

上传人:hjk****65 文档编号:252956919 上传时间:2024-11-26 格式:PPT 页数:18 大小:81.47KB
返回 下载 相关 举报
设计模式--工厂模式_第1页
第1页 / 共18页
设计模式--工厂模式_第2页
第2页 / 共18页
设计模式--工厂模式_第3页
第3页 / 共18页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2012-2-13,#,设计模式,工厂模式,2012.02,张云波,开闭,原则,对扩展开放,对修改关闭,扩展性,稳定性,简单工厂(,Simple Factory,),提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。,类,UML,图,抽象产品,具体产品,2,具体产品,1,工厂,具体产品,2,具体产品,1,产品,1,实例,产品,2,实例,普通实例化,简单工厂实例化,简单工厂中的,参与者,抽象产品,工厂创建的所有产品的父类,负责描述所有实例所共有的公共接口,具体产品,工厂创建的目标,抽象产品的某个具体实例,工厂,实现创建所有实例的内部逻辑,被外调用,创建需要的产品对象,优缺点,优点,实现了客户端和具体实现类的解耦,为系统结构提供了灵活的动态扩展机制,缺点,工厂包含了所有的创建逻辑,系统扩展困难,一旦添加新产品就不得不修改工厂逻辑(通过,反射,解决),不方便扩展子工厂。通常使用静态工厂方法,这使得无法由子类继承,什么时候选择简单工厂,要完全封装,隔离具体实现,选用简单工厂,让客户端通过工厂来获取相应的接口,而无须关心具体的实现。为系统结构提供了灵活的动态扩展机制,集中管理和控制对外创建对象的职责,简单工厂可以创建很多的、不相关的对象,可以把对外创建对象的职责集中到一个简单工厂来,从而实现集中管理和控制。,工厂方法(,Factory Method,),定义一个创建产品对象的,工厂接口,,将实际创建工作推迟到,子类,当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口。,类,UML,图,抽象产品,具体产品,2,具体产品,1,抽象工厂,具体工厂,2,具体工厂,1,工厂方法中的,参与者,抽象产品,所有产品的父类,描述所有实例所共有的公共接口,具体产品,工厂创建的目标,抽象产品的某个具体实例,抽象工厂,工厂方法模式的核心,任何在模式中创建的对象的工厂类必须实现这个接口,具体工厂,实现抽象工厂接口,实现创建所有实例的内部逻辑。被外调用,创建需要的产品对象,优缺点,优点,克服了简单工厂模式违背开放,封闭原则的缺点,又保持了封装对象创建过程的优点,为系统结构提供了灵活的动态扩展机制,缺点,每增加一个产品,就需要增加一个产品工厂的类,增加了额外的开发量,什么时候选择工厂方法,如果一个类需要创建某个接口的对象,但是又不知道具体的实现,这种情况可以选用工厂方法模式,把创建对象的工作延迟到子类去实现,如果一个类本身就希望,由它的子类来创建所需的对象的时候,应该使用工厂方法模式,抽象工厂(,Abstract,Factory,),当有多个抽象角色时,使用的一种工厂模式。,抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。,类,UML,图,抽象产品,1,具体产品,2,具体产品,1,抽象工厂,具体工厂,2,具体工厂,1,抽象产品,2,抽象工厂中的,参与者,抽象产品,多个有相关联系的产品的接口,具体产品,工厂创建的目标,抽象产品的某个具体实例,抽象工厂,工厂方法模式的核心,任何在模式中创建的对象的工厂类必须实现这个接口,具体工厂,实现抽象工厂接口,实现创建所有实例的内部逻辑。被外调用,创建需要的产品对象,优缺点,优点,分离了具体的类。,使得易于交换产品系列,有利于产品的一致性,缺点,难以扩展抽象工厂以生产新种类的产品。,抽象工厂几口确定了可以被创建的产品集合,支持新种类的产品就需要扩展该工厂接口,这将涉及抽象工厂类及其所有子类的改变。,什么时候选择抽象工厂,一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。,这个系统有多于一个的产品族,而系统只消费其中某一产品族。,同属于同一个产品族的产品是在一起使用的,这一约束必须在系统的设计中体现出来。,系统提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于实现,End,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!