net设计模式实例之抽象工厂模式(abstractfactorypattern)

net设计模式实例之抽象工厂模式(abstractfactorypattern)

ID:33746192

大小:126.36 KB

页数:9页

时间:2019-02-28

net设计模式实例之抽象工厂模式(abstractfactorypattern)_第1页
net设计模式实例之抽象工厂模式(abstractfactorypattern)_第2页
net设计模式实例之抽象工厂模式(abstractfactorypattern)_第3页
net设计模式实例之抽象工厂模式(abstractfactorypattern)_第4页
net设计模式实例之抽象工厂模式(abstractfactorypattern)_第5页
资源描述:

《net设计模式实例之抽象工厂模式(abstractfactorypattern)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Net设计模式实例之抽象工厂模式(AbstractFactoryPattern)—、抽象工厂模式简介(BrefIntroduction)抽象工厂模式(AbstractFactoryPattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类。优点是:易于交换产品系列,由于具体工厂类在一个应该用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂类变得非常容易,它只需要改变具体工厂即可使用不同的产品趾置。抽象工厂的另一个优点是,它让具体的创建实例与客户端分离,客户端是通过他们的抽彖接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出

2、现在客户的代码屮。二、解决的问题(WhatToSolve)常用用于解决数据访问程序,也就是说程序通过使用抽象工厂模式后,可以灵活地在不同的数据库之间切换,而不需要费时费力地改变原有程序。三、抽象工厂模式分析(Analysis)抽象工厂模式结构AbstractFactory/Njme:AbstractFactoryPjdcag•:AbstractFjctoryVersion:1.0Author:那宪瑤IProductA.IProductA接口:两个产品接口,他们都有可能有两种不同的实现。ProductAI、ProductA2,ProductB1>ProductB2具体实现类

3、:对两个产品接口的具体分类的实现。AbstractFactory抽象类:抽象工厂接口,它里而应该包含所有产品创建的抽象方法。ConcreteFactorylConcreteFactory2具体工厂类:创建具有特左实现的产品对彖2、源代码1>产品接口IProductA^IProductB及其两种实现publicinterfaceIProductAvoidShow();publicclassProductAl:IProductA{publicvoidShow(){Console.WriteLine(〃具体产品类(0)展示方法。this.GetType().Name);pub1

4、icclassProductA2:IProductA{publicvoidShow(){Console.WriteLine(z,具体产品类{0}展示方法。this.GetType().Name);}publicinterfaceIProductB{voidInsert();publicclassProductBl:IProductB{publicvoidInsert(){Console.WriteLine(z,具体产品类{0}插入方法。this.GetType().Name);}publicclassProductB2:IProductBpublicvoidInsert(

5、)Console.WriteLine(,z具体产品类{0}插入方法。this.GetTypeO.Name);2抽象工厂接口AbstractEactory,及其具体的工厂"AbstractEactoryl>AbstractFactory2publicabstractclassAbstractFactory{publicabstractTProductACreateProductA();publicabstractIProductBCreateProductBO;publicclassAbstractFactory1:AbstractFactorypublicoverride

6、IProductACreateProductA(){TProductAproductAl=newProductAl();returnproductAl;}publicoverrideIProductBCreateProductBO{IProductBproductBl=newProductBl();returnproductBl;}publicclassAbstractFactory2:AbstractFactory{publicoverrideIProductACreateProductA(){IProductAproductA2二newProductA2();retu

7、rnproductA2;}publicoverrideIProductBCreateProductB(){IProductBproductB2=newProductB2();returnproductB2;3、客户端代码staticvoidMain(string[]args){//根据需求调用具体工厂AbstractFactorylAbstractFactoryfactoryl=newAbstractFactoryl();IProductAproductAl二factory1.CreateProductA();IProduct

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

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

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