欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    常见的10种设计模式.docx

    • 资源ID:1769595       资源大小:103.88KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    常见的10种设计模式.docx

    设计模式1简洁工厂模式简洁工厂模式属于类的创建里模式,又叫做静态工厂方法模式。通过特地定义一个类来负贡创建其他类的实例,被创建的实例通常都具有共同的父类.工厂(Creator)角色简洁工厂模式的核心,它负员实现创建全部实例的内部逻辑“工厂类可以被外界干脆调用,创建所需的产品对象。抽象(PrOdUet)角色简洁工厂模式所创建的全部时象的父类,它负责描述全部实例所共有的公共接口。详例产品(ConereteProduct)角色简洁工厂模式所创建的详细实例对象优缺点在这个模式中,工厂类是整个模式的关键所在.它包含必要的推断逻辑,能够依据外界给定的信息,踊定原委应当创建哪个详细类的对象。用户在运用时可以干脆依据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系结构的优化。简洁工厂模式的缺点也正体现在其工厂类上,由于工厂类集中/全部实例的创走逻辑,所以“高内聚”方面做的并不好。另外,当系统中的详细产品类不断增多时,可能会出现要求工厂类也要做相应的修改,扩展性并不很好。2工厂方法模式工厂方法模式同样属于类的创建里模式又被称为多态工厂模式。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中.核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责详细工厂子类必需实现的接口,这样进步抽象化的好处是使得工厂方法模式可以使系统在不修改详细工厂角色的状况下引进新的产品。抽象工厂(Creator)角色:工厂方法模式的核心,任何工厂类都必需实现这个接口。详铀工厂(COnCreteCreator)角色:抽象工厂的一个实现,负贵实例化产品对象。抽象(ProdUCt)角色:工厂方法模式所创建的全部对象的父类,它负责描述全部实例所共有的公共接口。详细产品(ConCreteProduct)角色:工厂方法模式所创建的详细实例对象工厂方法模式与工厂模式的比较:工厂方法模式与简洁工厂模式在结构上的不同不是很明显。工厂方法类的核心是一个抽象工厂类,而荷洁工厂模式把核心放在一个详细类上。工厂方法模式之所以有一个别名叫多态性工厂模式是因为详细工厂类都有共同的接口,或者有共同的抽象父类。当系统扩展须要添加新的产品对象时,仅仅须要添加一个详细对象以及一个详细工厂对象,原有工厂对象不须要进行任何修改,也不须要修改客户端,很好的符合了“开放一封闭”原则。而简洁工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。工厂方法模式退化后可以演化成简洁工厂模式.3抽象工厂模式抽象工厂模式是全部形态的工厂模式中最为抽象和最其一般性的。抽型工厂模式可以向客户湍供应一个接口,使得客户端在不必指定产品的详细类型的状况下,能够创建多个产品族的产品对象。产品欣产品第级结构抽象工厂(CreatOr)角色抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必需实现这个接口。详细工厂(ConcreteCreator)角色详细工厂类是抽象工厂的一个实现,负货实例化某个产品族中的产品对象。抽象(PrOdUCt)角色抽象模式所创建的全部对象的父类,它负责描述全部实例所共有的公共接口。详细产品(COnereteProduct)角色抽象模式所创建的详细实例对象总结:抽象工厂中方法对应产品结构,详细工厂对应产品族。4单例模式单例模式是一种对象创建型模式,运用堆例模式,可以保证为一个类只生.成唯一的实例对象“也就是说,在整个程序空间中,该类只存在一个实例对以。其实,GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时供应能对该实例加以访问的全局访问方法。为什么要运用单例模式呢?在应用系统开发中,我们经常有以下需求:在多个线程之间,比如8erv1.et环境,共享同一个资源或者操作同一个对象-在整个程序空间运用全局变量,共享资源-大规模系统中,为了性能的考虑,须要节的对象的创建时间等等.因为Sing1.eIon模式可以保证为一个类只生成唯一的实例对象,所以这些状况,SingIetOn模式就派上用场了。单例模式实现1 .饿汉式。2 .懒汉式。3 .双全检杳。5 .代理模式PrOXy模式又叫做代理模式,是构造型的设计模式之一,它可以为其他对象供应一种代理(PrOXy)以限制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必需通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特殊的处理。代理模式的结构代理模式的角色和职责subject(抽象主题角色):真实主题与代理主题的共同接口°Rea1.Subject(真实主JR角色):定义了代理角色所代表的真实对象。Proxy(代理主题角色):含有对真实主题角色的引用,代理角色通常在将客户端调用传递给真是主题对象之前或者之后执行某些獴作,而不是单纯返回真实的对象。动态代理1) InvocationHandIer接口2) invoke方法3) Proxy.newProxnstance();6 .吩咐模式Command模式也叫吩咐模式,是行为设计模式的种。Command模式通过被称为COmmand的类封装了对目标对象的调用行为以及调用参数。吩咐模式的应用场景在面对对象的程序设计中,一个对象调用另一个对象,一般状况卜的调用过程是:创建目标对象实例:设置调用参数:调用目标对象的方法。但在仃些状况下有必要运用一个特地的类对这种调用过程加以封装,我们把这种特地的类称作Command类。- 整个调用过程比较繁杂,或者存在多处这种调用.这时,运用Ccxnmund类对该调用加以封装,便于功能的再利用。- 调用前后须要对调用参数进行某些处理。- 调用前后须要进行某些额外处理,比如日志,缓存,记录历史操作等.吩咐模式的结构吩咐模式的角色和职贡CoonandCommand抽象类。ConcretCoonandCommand的详细实现类*Receiver须要被调用的目标对象。Invorker通过Invorkcr执行Command对象。7.策略模式Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为全部算法定义一个抽型的算法接口,并通过继承该抽象克法接口对全部的莫法加以封装和实现,详细的穿法选择交由客户端确定(策略)。SIrHIegy模式主要用来平滑地处理算法的切换。D策略模式的结构ContextnStratogy:Strategy*O*。operation().void0Strategya1.gorithm1.nterface():voidConcneteStrategyAeaisDrithm1.nterfaceO:voidConcreteStrategyS。a1.gorhm1.nterface0void2)策略模式的角色和职货Strategy:策略(算法)抽象。ConcreteStrategy各种策略(算法的详细实现。Context策略的外部封装类,或者说策略的容器类。依据不Im策略执行不同的行为。策略由外部环境确定。3)策略模式的优点:1 .策略模式供应了管理相关的算法族的方法。策略类的等级结构定义了一个算法或行为族。恰当运用继承可以把公共的代码移到父类里面,从而避开重纪的代码。2 .策略模式供应了可以昔换继承关系的方法。维承可以处理多种犯法或行为。假如不是用策略模式,那么运用算法或行为的环境类就可能会有一蚂子类,每个子类供应个不同的算法或行为。但是,这样来算法或行为的运用者就和算法或行为本身混在一起。确定运用哪一种算法或实行哪一种行为的逻辑就和算法或行为的逻辑混合在一起,从而不行能再独立演化。继承使得动态变更算法或行为变得不行能”3 .运用策略模式可以避开运用多克条件转移语句。多IR转移语句不易维护,它把实行哪种算法或实行哪种行为的逻辑与算法或行为的逻辑混合在起,统统列在一个多重转移语句里面,比运用继承的方法还要原始和落后。4)策略模式的缺点有:1 .客户端必需知道全部的策略类,并自行确定运用哪一个第略类。这就意味着客户端必需理解这些算法的区分,以便适时选择恰当的算法类。换言之,策略模式只适用T客户端知道全部的算法或行为的状况.2 .策略模式造成许多的策略类。有时候可以通过把依靠于环境的状态保存到客户端里面,而将策略类设计成可共享的,这样策略类实例可以被不同客户端运用。换言之,可以运用享元模式来削减时象的数量.8 .外观模式FaCadC模式也叫外观模式,也称门面模式,是由GOF提出的23种设计模式中的一种。FaCade模式为一组具有类似功能的类群,比如类库,子系统等等,提供个一样的简洁的界而。这个样的简洁的界面被称作facadeo外观模式的结构Package1.'-<<inc1.udes>>Package2C3S52.C43<<ino1.udes>>、FacadeoSomethingOdoSomcth1.ngO.doSor11Qth1.ngQPaCkag-Css3dess<<no1.uds>>、doSomethingOC1.ass1d=newC1.ass1Q;C1.ass2c2=newC1.ass2Q;C1.ass3c3=newCIaSS30;c1.doStuff(c2);c3.set×(c1get×O);returnc3.ge¾YQ.外观模式的角色和职贡Facade为调用方定义简洁的调用接口。C1.ients调用者。通过Facade接口调用供应某功能的内部类群。Packages功能供应者.指供应功能的类群(模块或子系统)。9 .桥接模式Bridge模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过运用封装,聚合以及继承等行为来让不同的类担当不同的贡任。它的主要特点是把抽象(abstraction)与行为实现(i1.eoentation)分别开来,从而可以保持各部分的独立性以及应对它们的功能犷展,桥接模式的结构桥接模式的角色和职贵C1.ientBridge模式的运用者Abstraction抽象类接口(接口或抽象类):维护对行为实现(ImP1.emCntor)的引用RefinedAbstractionAbstraction子类I1.eentor行为实现类接口(AbStraetion接口定义了基于ImPIementOr接口的更高层次的操作)ConcreteInp1.eDentorImp1.ementor子类10 .视察者模式Observer模式是行为模式之一,它的作用是当一个对象的状态发生变更时,能够自动通知其他关联对象,自动刷新对象状态。Observer模式供应应关联对象一种同步通信的手段,使某个对象与依靠它的其他对象之间保持状态同步。视察者模式的结构视察者模式的角色和职员SUbjeCt(被视察者)被视察的对象。当须要被视察的状态发生变更时,须要通知队列中全部视察者对以。SUbjeCt须要维持(添加,删除,通知)一个视察者对以的队列列表。ConcreteSubject被视察者的详细实现。包含一些基本的属性状态及其他操作.Observer(视察者)接口或抽象类.当Subject的状态发生变更时,Observer对象将通过一个C

    注意事项

    本文(常见的10种设计模式.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

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

    收起
    展开