- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈设计模式的应用.doc
浅谈设计模式的应用 【摘要】设计模式最初产生于建筑行业。在80年代后期,随着面向对象思想的出现和普及,设计模式开始进入计算机系统领域。本文简单讨论了什么是设计模式,设计模式的两种分类方式以及如何在实际工作中运用设计模式等三方面的问题。 【关键词】设计模式;应用;面向对象;重用 很多程序员都是在工作中积累了一定经验后,才开始接触设计模式的,但是大部分人在刚开始接触时对设计模式的理解就是不懂为什么要把很简单的东西复杂化。其实所谓“复杂”恰恰就是设计模式的精髓所在。我们的“简单”其实只是一把钥匙开一把锁的模式,仅仅着眼于解决现在的问题;而设计模式的“复杂”就在于构造一个“万能钥匙”,即提出一种所有锁的开锁方案。 一、什么是设计模式 软件设计模式提供了一种共享经验的方式,人们都可以因此而获利,同时避免大量的重复工作。设计模式一般需要从问题最细微的细节逐步抽象出来,从而可以获得最大的普适性。Gang Of Four合著的《设计模式》一书,使设计模式得到了高度的重视。 设计模式比代码高一个层次。通过引入设计模式,我们的代码能具有较高的稳定性或者复用性。有经验的软件设计人员通常知道如何利用面向对象语言编写出高效率的代码。 如果我们也期望成为一名出色的软件设计人员,那么我们就必须学习并使用设计模式。 二、设计模式的分类 《设计模式》中一共提到了23种基本设计模式,而这些设计模式又可以分为创建型、行为型和结构型三大类。 1.创建型 创建型模式主要用于对象的创建,但它隐藏了对象创建的细节,使对象的创建不再依赖于具体的对象类型。创建型设计模式可以使得客户代码无须调用类的构造器方法,就可以创建一个新的对象。 创建型模式一般包括:原型模式、单体模式、工厂模式、抽象工厂模式、生成器模式和备忘录模式。 2.行为型 行为模式涉及到算法和对象间职责的分配。它不仅描述对象和类的模式,还描述它们之间的联系。这使我们仅需关注对象之间的联系,而不再需要像传统的实现方式那样去操作各种复杂的控制流。 行为型设计模式又可以细分为责任型模式和操作型模式两类: 1)责任型模式 封装是面向对象的软件开发的一个主要特点,它将责任分配给各个对象,这是面向对象的程序设计的规范,但某些时候,我们需要将责任集中到某个中间对象或特殊对象,由它集中处理,这就是责任模式。 责任模式一般包括:观察者模式、中介模式、代理模式、责任链模式、迭代器模式和享元模式。 2)操作型模式 如果我们需要使用多个方法来完成一个设计,而这些方法具有相同的方法签名,那么我们需要使用操作型模式。 操作型模式一般包括:模板方法模式、状态模式、策略模式、命令模式、访问者模式和解释器模式。 3.结构型 结构型模式充分的利用了接口的概念,这里的接口,是指抽象,通过这种抽象机制来组合类,从而实现所需的功能。 结构型模式包括了适配器模式、外观模式、组合模式、桥接模式和装饰器模式。 我们还可以根据可见性和依赖程度将设计模式分为broad exposure和isolated use两类。 Broad exposure设计模式可以简单的理解为开放型模式,由于过度的开放,会导致客户代码与其产生依赖。因此,使用这种设计模式的决定不能轻易取消,否则将会产生十分巨大的开销。 相对于broad exposure模式,Isolated use则将细节隐藏起来,对客户代码基本透明,避免了依赖性而导致的外部耦合,从而使得程序更加稳定。 三、设计模式在实际中的应用 设计模式的理解和使用并非朝夕之功,一般会经历三个阶段: 第一个阶段,为了模式而模式。在这个阶段里程序设计人员刚刚开始接触设计模式,并努力在自己的代码中有意的加入设计模式,但是由于对设计模式的理解不足和经验的欠缺,往往不能很好的达到预期的目的,需要通过大量的失败和不断的尝试积累经验; 第二个阶段,我们可以称之为非最优化模式。在这个阶段里,程序设计人员对模式已经有了一定的理解,而且可以自如的在程序设计中应用一些设计模式理念,但是仍有考虑不周之处,可以看作是上一阶段的进阶阶段; 第三个阶段,无模式阶段。即在程序设计过程中并没有可以追求所谓的模式,而是自然而然将设计模式的理念融入到其设计当中,该阶段可谓是设计模式的最高境界。 但目前大多数程序设计人员尚处于第二阶段甚至第一阶段当中,如何把设计模式的采用和日益临近的工期、紧缩的预算及资源相结合,是我们面临的主要问题。以下提供三个建议: 1.良好的沟通和培训 在程序开发过程中,必须保持良好的沟通机制,而且应当是跨团队,甚至是跨项目的,从而预防相对独立或者唯一的实现方式。 另外通过强化培训,加强对设计模式的理解并提高应用水平。在学习设计模式的同时也必须紧记各种反模式,以避免重蹈覆辙。 2.设计模式的评审 设计模式并非万试万灵的,当我们选择了不当的模式的时候,它
您可能关注的文档
最近下载
- 北师大版八年级数学上册 1.1 探索勾股定理 同步测试(附答案解析).docx VIP
- 冀少版七年级上册生物全册新质教学课件(配2024年秋改版教材).pptx
- 卫生间改造施工组织设计.pdf VIP
- 《结构吊装施工》.pdf VIP
- 2025年中考数学押题:几何图形选填压轴题(含答案).pdf VIP
- 小学英语群文阅读:No Pain, No Gain 教学设计 PPT课件.pptx VIP
- 氢气管线吹扫试压方案.docx VIP
- 正余弦函数的图像和性质导学案.doc VIP
- 2021新教材必修第一册完美题型精讲(同步学习培优120个题型完美讲解).pdf VIP
- 美术五年级上册人美版 第2课 画人像(课件)(14ppt).pptx VIP
文档评论(0)