下载此文档

工厂方法模式设计模式浅谈.docx


文档分类:论文 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
工厂方法模式设计模式浅谈工厂方法经常用在以下两种情况中 :第一种情况是对于某个产品, 调用者清楚地知道应该使用哪个具体工厂服务, 实例化该具体工厂,生产出具体的产品来。 JavaCollection中的iterator()方法即属于这种情况。第二种情况,只是需要一种产品,而不想知道也不需要知道究竟是哪个工厂为生产的, 即最终选用哪个具体工厂的决定权在生产者一方, 它们根据当前系统的情况来实例化一个具体的工厂返回给使用者,而这个决策过程这对于使用者来说是透明的。工厂模式的定义工厂方法模式(FactoryMethod)的意义就是是定义一个用来创建产品对象工厂的接口,然后将所要完成的工作交给子类运行。使得核心工厂类不再对产品进行创建,这样核心类就成为了一个类似抽象工厂的角色, 只提供子类所要创建的对象的借口,这样做的目的是使得工厂方法模式可以使系统在不改变工厂角色的情况下引进其他新的产品。工厂方法模式其实是简单工厂模式的衍生,完善了许多简单工厂模式的缺点,解决了许多简单工厂模式的问题。工厂方法模式的对简单工厂模式进行了抽象。有一个抽象的工厂类或者接口,这个类将不再负责详细的产品生产,详细的生产工作由工厂的子类去完成实现。在样的模式中,工厂类和产品类一般可以相对应。就是一个抽象工厂对应一个抽象的产品,一个具体工厂对应一个具体产品。工厂方法模式是最典型的模板方法模式应用。工厂方法模式角色与结构抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。具体工厂(ConcreteCreator)角色:这是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑, 并且受到应用程序调用以创建产品对象。 在上图中有两个这样的角色: BulbCreator与TubeCreator。抽象产品(Product)角色:工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口。在上图中,这个角色是 Lighto具体产品(ConcreteProduct)角色:这个角色实现了抽象产品角色所定义的接口。某具体产品有专门的具体工厂创建,它们之间往往一一对应。优点有(1)用户只需要关心所需产品对应的工厂,无需关心创建细节,甚至无需知道具体产品类的类名。它能够使工厂方可以自主确定创建何种产品对象,而如何创建这个对象的细节则完美封装在具体共产内部。工厂方法模式可以使系统在不改变工厂角色的情况下引进其他新的产品。缺点添加新产品是,需要编写新的具体产品类,还要提供与之对应的具体工厂类,系统中类的个数将成对增加,会给系统带来额外的开销。对工厂方法模式与简单工厂模式对比工厂方法模式和简单工厂模式在结构上的不同是很明显的。 工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的综合,进而推广了简单工厂模式。工厂方法模式退化后可以变得很像简单工厂模式。实例介绍宝马工厂生产宝马汽车,奔驰工厂生产奔驰汽车使用工厂,使用工厂模式模拟场景,绘制相应类图用java实现。工厂方法模式的一优点在丁增加新的产品类无需修改现有系统, 所以先创建抽象产品类autocar,在对抽象产品类进行实例化,即具体产品类BMWautocar和

工厂方法模式设计模式浅谈 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人秋江孤影
  • 文件大小38 KB
  • 时间2020-09-23
最近更新