欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    05 C#设计模式-抽象工厂模式.ppt

    • 资源ID:80590399       资源大小:3.28MB        全文页数:20页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    05 C#设计模式-抽象工厂模式.ppt

    www.ChinaSA.infoDDesign esign P Patternsatterns抽象工厂模式抽象工厂模式抽象工厂模式抽象工厂模式刘刘 伟伟(Sunny)weiliu_www.ChinaSA.info大纲w产品等级结构与产品族w抽象工厂模式概述w抽象工厂模式的结构与实现w抽象工厂模式的应用实例w开闭原则的倾斜性w抽象工厂模式的优缺点与适用环境www.ChinaSA.info产品等级结构与产品族w工厂方法模式每个具体工厂每个具体工厂只有一个或者一组重载的工厂方法只有一个或者一组重载的工厂方法,只只能生产一种产品能生产一种产品,可能会导致系统中存在大量的工厂,可能会导致系统中存在大量的工厂类,势必会增加系统的开销类,势必会增加系统的开销w抽象工厂模式一个工厂一个工厂可以生产一系列产品(一族产品)可以生产一系列产品(一族产品),极大减,极大减少了工厂类的数量少了工厂类的数量www.ChinaSA.info产品等级结构与产品族w概念产品等级结构:产品等级结构:产品等级结构即产品的产品等级结构即产品的继承结构继承结构产品族:产品族:产品族是指由产品族是指由同一个工厂生产的,位于不同同一个工厂生产的,位于不同产品等级结构中的一组产品产品等级结构中的一组产品五个产品族,分属于五个产品族,分属于三个不同的产品等级三个不同的产品等级结构结构www.ChinaSA.info抽象工厂模式概述w模式动机当系统所提供的工厂生产的具体产品并不是一个简单的对象,而当系统所提供的工厂生产的具体产品并不是一个简单的对象,而是是多个位于不同产品等级结构、属于不同类型的具体产品时就可多个位于不同产品等级结构、属于不同类型的具体产品时就可以使用抽象工厂模式以使用抽象工厂模式抽象工厂模式是抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的所有形式的工厂模式中最为抽象和最具一般性的一种形式一种形式www.ChinaSA.info抽象工厂模式概述w抽象工厂模式的定义对象创建型对象创建型模式模式抽抽象象工工厂厂模模式式:提供一个创创建建一一系系列列相相关关或或相相互互依依赖赖对对象象的接口的接口,而无须指定它们具体的类。Abstract Factory Pattern:Provide an interface for creating families of related or dependent objects without specifying their concrete classes.www.ChinaSA.info抽象工厂模式概述w抽象工厂模式的定义又称为又称为工具工具(Kit)模式模式抽象工厂模式中的具体工厂不只是创建一种产品,它抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品负责创建一族产品当当一个工厂等级结构可以创建出分属于不同产品等级一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族中的所有对象时结构的一个产品族中的所有对象时,抽象工厂模式比抽象工厂模式比工厂方法模式更为简单、更有效率工厂方法模式更为简单、更有效率www.ChinaSA.info抽象工厂模式的结构与实现w抽象工厂模式的结构www.ChinaSA.info抽象工厂模式的结构与实现w抽象工厂模式的结构抽象工厂模式包含以下抽象工厂模式包含以下4个角色:个角色:AbstractFactory(抽象工厂)ConcreteFactory(具体工厂)AbstractProduct(抽象产品)ConcreteProduct(具体产品)www.ChinaSA.info抽象工厂模式的结构与实现w抽象工厂模式的实现典型的抽象工厂类代码:典型的抽象工厂类代码:abstract class AbstractFactorypublic abstract AbstractProductA CreateProductA();/工厂方法一工厂方法一public abstract AbstractProductB CreateProductB();/工厂方法二工厂方法二www.ChinaSA.info抽象工厂模式的结构与实现w抽象工厂模式的实现典型的具体工厂类代码:典型的具体工厂类代码:class ConcreteFactory1:AbstractFactory /工厂方法一工厂方法一public override AbstractProductA CreateProductA()return new ConcreteProductA1();/工厂方法二工厂方法二public override AbstractProductB CreateProductB()return new ConcreteProductB1();www.ChinaSA.info抽象工厂模式的应用实例w实例说明某软件公司要开发一套界面皮肤库,可以对基于.NET平台的桌面软件进行界面美化。用户在使用时可以通过菜单来选择皮肤,不同的皮肤将提供视觉效果不同的按钮、文本框、组合框等界面元素,例如春天(Spring)风格的皮肤将提供浅绿色的按钮、绿色边框的文本框和绿色边框的组合框,而夏天(Summer)风格的皮肤则提供浅蓝色的按钮、蓝色边框的文本框和蓝色边框的组合框,其结构示意图如下图所示:该皮肤库需要具备良好的灵活性和可扩展性,用户可以自由选择不同的皮肤,开发人员可以在不修改既有代码的基础上增加新的皮肤。现使用抽象工厂模式来设计该界面皮肤库。界面皮肤界面皮肤库结库结构示意构示意图图www.ChinaSA.info抽象工厂模式的应用实例w实例类图界面皮肤库结构图界面皮肤库结构图www.ChinaSA.info抽象工厂模式的应用实例w实例代码(1)Button:按钮接口,充当抽象产品:按钮接口,充当抽象产品(2)SpringButton:Spring按钮类,充当具体产品按钮类,充当具体产品(3)SummerButton:Summer按钮类,充当具体产品按钮类,充当具体产品(4)TextField:文本框接口,充当抽象产品:文本框接口,充当抽象产品(5)SpringTextField:Spring文本框类,充当具体产品文本框类,充当具体产品(6)SummerTextField:Summer文本框类,充当具体产品文本框类,充当具体产品(7)ComboBox:组合框接口,充当抽象产品:组合框接口,充当抽象产品(8)SpringComboBox:Spring组合框类,充当具体产品组合框类,充当具体产品(9)SummerComboBox:Summer组合框类,充当具体产品组合框类,充当具体产品(10)SkinFactory:界面皮肤工厂接口,充当抽象工厂:界面皮肤工厂接口,充当抽象工厂(11)SpringSkinFactory:Spring皮肤工厂,充当具体工厂皮肤工厂,充当具体工厂(12)SummerSkinFactory:Summer皮肤工厂,充当具体工厂皮肤工厂,充当具体工厂(13)配置文件配置文件App.config(14)Program:客户端测试类:客户端测试类演示演示演示演示参考代码参考代码(DesignPatternAbstractFactorySample)www.ChinaSA.info抽象工厂模式的应用实例w结果及分析更换皮肤,只需修改配置文件更换皮肤,只需修改配置文件 www.ChinaSA.info开闭原则的倾斜性w增加产品族对于增加新的产品族对于增加新的产品族,抽象工厂模式很好地,抽象工厂模式很好地支持支持了了开开闭原则闭原则,只需要增加具体产品并对应增加一个新的具,只需要增加具体产品并对应增加一个新的具体工厂,对已有代码无须做任何修改体工厂,对已有代码无须做任何修改w增加新的产品等级结构对于增加新的产品等级结构对于增加新的产品等级结构,需要修改所有的工厂角,需要修改所有的工厂角色,包括抽象工厂类,在所有的工厂类中都需要增加色,包括抽象工厂类,在所有的工厂类中都需要增加生产新产品的方法,生产新产品的方法,违背了开闭原则违背了开闭原则www.ChinaSA.info抽象工厂模式的优缺点与适用环境w模式优点隔离了具体类的生成隔离了具体类的生成,使得客户端并,使得客户端并不需要知道什么被创建不需要知道什么被创建当一个产品族中的多个对象被设计成当一个产品族中的多个对象被设计成一起工作时,它一起工作时,它能够保证客户端始终能够保证客户端始终只使用同一个产品族中的对象只使用同一个产品族中的对象增加新的产品族很方便增加新的产品族很方便,无须修改已,无须修改已有系统,有系统,符合开闭原则符合开闭原则www.ChinaSA.info抽象工厂模式的优缺点与适用环境w模式缺点增加新的产品等级结构麻烦增加新的产品等级结构麻烦,需要对原,需要对原有系统进行较大的修改,甚至需要修改有系统进行较大的修改,甚至需要修改抽象层代码,这显然会带来较大的不便,抽象层代码,这显然会带来较大的不便,违背了开闭原则违背了开闭原则www.ChinaSA.info抽象工厂模式的优缺点与适用环境w模式适用环境一个系统一个系统不应当依赖于产品类实例如何被创不应当依赖于产品类实例如何被创建、组合和表达的细节建、组合和表达的细节系统中有多于一个的产品族,但系统中有多于一个的产品族,但每次只使用每次只使用其中某一产品族其中某一产品族属于同一个产品族的产品将在一起使用属于同一个产品族的产品将在一起使用,这,这一约束必须在系统的设计中体现出来一约束必须在系统的设计中体现出来产品等级结构稳定产品等级结构稳定,设计完成之后,不会向,设计完成之后,不会向系统中增加新的产品等级结构或者删除已有系统中增加新的产品等级结构或者删除已有的产品等级结构的产品等级结构www.ChinaSA.infoENDEND

    注意事项

    本文(05 C#设计模式-抽象工厂模式.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开