《工厂方法模式-1.ppt》由会员分享,可在线阅读,更多相关《工厂方法模式-1.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、工厂方法模式工厂方法模式-1工厂方法模式是类的创建模式,又叫做虚拟构造子模式或多态性工厂模式。它的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。结构图Product:产品角色-定义产品的接口ConcreteProduct:真实的产品-实现接口Product的类Creator:工厂角色-声明工厂方法(FactoryMethod),返回一个产品ConcreteCreator:真实的工厂-实现工厂方法,由客户调用,返回一个产品的实例适用性1.当一个类不知道它所必须创建
2、的对象的类的时候。2.当一个类希望由它的子类来指定它所创建的对象的时候。3.客户需要清楚创建了哪一个类ProductabstractclassProductConcreteProductAclassConcreteProductA:ProductConcreteProductBclassConcreteProductB:ProductCreatorabstractclassCreatorpublicabstractProductFactoryMethod();ConcreteCreatorclassConcreteCreatorA:CreatorpublicoverrideProductFac
3、toryMethod()returnnewConcreteProductA();ConcreteCreatorclassConcreteCreatorB:CreatorpublicoverrideProductFactoryMethod()returnnewConcreteProductB();classProgramstaticvoidMain(stringargs)Creatorcreators=newCreator2;creators0=newConcreteCreatorA();creators1=newConcreteCreatorB();foreach(Creatorcreator
4、increators)Productproduct=creator.FactoryMethod();Console.WriteLine(Created0,product.GetType().Name);优点在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将创建的工作交给子类去做。这个核心类成为一个抽象工厂的角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类实例化的细节。这使得工厂方法模式可以允许系统在不修改具体工厂角色的情况下引进新的产品,使其具有超越简单工厂模式的优越性。总结总结FactoryMethod模式是设计模式中应用最为广泛的模式要明确的是:在面向对象的编程中,对象的创建工作非常简单,对象的创建时机却很重要。FactoryMethod要解决的就是对象的创建时机问题,它提供了一种扩展的策略,很好地符合了开放封闭原则