设计模式:工厂方法模式

设计模式:工厂方法模式

ID:6109798

大小:122.00 KB

页数:6页

时间:2018-01-03

设计模式:工厂方法模式_第1页
设计模式:工厂方法模式_第2页
设计模式:工厂方法模式_第3页
设计模式:工厂方法模式_第4页
设计模式:工厂方法模式_第5页
资源描述:

《设计模式:工厂方法模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、今天说一下工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类所谓的决定并不是批模式允许子类本身在运行时做决定,而是指在编写创建者类时,不需知道创建的产品是哪一下,选择了使用哪个子类,就决定了实际创建的产品是什么。 1#region工厂模式23//产品4publicabstractclassProduct5{6publicstringproductName;7}89//建造者10//工厂方法是创建一个框架,让子类决定要如何实现具体的产品11publicabstractclassC

2、reator12{13publicProductFactoryMethod(stringf_ProductType)14{15Product_product;16_product=CreateProduct(f_ProductType);        //可对产品做其它的操作......17return_product;18}19//让子类去实现要生产什么产品20publicabstractProductCreateProduct(stringf_Type);2122}23#region产品24publicclassOnePro

3、duct:Product25{26publicOneProduct()27{28productName="OneProduct";29}30}3132publicclassTwoProduct:Product33{34publicTwoProduct()35{36productName="TwoProduct";37}38}3940publicclassFirstProduct:Product41{42publicFirstProduct()43{44productName="MyFirstProduct";45}46}4748p

4、ublicclassSecondProduct:Product49{50publicSecondProduct()51{52productName="MySecondProduct";53}54}55#endregion56//第一个建造工厂57publicclassOneCreator:Creator58{59publicoverrideProductCreateProduct(stringf_Type)60{61switch(f_Type)62{63case"one":64returnnewOneProduct();65cas

5、e"two":66returnnewTwoProduct();67}6869returnnull;70}71}72//第二个建造工厂73publicclassTwoCreator:Creator74{75publicoverrideProductCreateProduct(stringf_Type)76{77switch(f_Type)78{79case"one":80returnnewFirstProduct();81case"two":82returnnewSecondProduct();83}84returnnull;85}

6、86}87888990#endregion1staticvoidMain(string[]args)2{345#region工场模式6789//第一个工厂两种产品10Creator_creator=newOneCreator();11Product_product=_creator.FactoryMethod("one");12Console.WriteLine(_product.productName);13_product=_creator.FactoryMethod("two");14Console.WriteLine(_p

7、roduct.productName);1516//第二个工厂造另两种产品1718Creator_tCreator=newTwoCreator();19Product_tProduct=_tCreator.FactoryMethod("one");20Console.WriteLine(_tProduct.productName);21_tProduct=_tCreator.FactoryMethod("two");22Console.WriteLine(_tProduct.productName);23#endregion242

8、5Console.ReadLine();26}让我们来看一下依赖关系我们会看到 Creator和所有的产品(OneProduct、TwoProduct...)都依赖了Product.这是依赖倒置原则:要依赖抽象,不要依赖具体类也就是说不能让具体产品

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。