`
chian_xxp
  • 浏览: 97248 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

學習設計模式第二篇

阅读更多

設計模式分有幾個大類:

  • 創建型:
  • 結構型:
  • 行為型:

本文將陸續更新,每個類別下的設計模式具體的目的及意圖,及工作方式:

  • 行為型:
  1. strategy模式:策略模式.目的是分解算法.將內容與算法分開.以達到內容與算法的變化能夠互不影響.也是為了支持變化.

工作方式:

    在內容的容器中,包括有策略接口的引用.當容器的內容需要變換不同的算法時,只需要將指定的算法引用指定給容器中的策略接口引用.變達到了變換算法的目的,而無法變動多少代碼.

2  bridge模式:橋接模式

    目的是分離抽象與實現.例如人都有一些共有的功能,但是男人或是女人在這些共有的功能上的表現卻是不一樣的.于是可以分成男人功能和女人功能,甚至更多.

    工作方法:

        將人定義成一個抽象類.包含有共有功能的引用.然後男人或是女人都繼承人這個抽象類.男人功能和女人功能再都實現共有功能類.

        與工廠方法不同的是,工廠方法用於創建不同分類的對象.而橋接模式用於實現不同的功能.這兩種模式可以組合起來使用.

  • 結構型:
  1. decorator模式:裝飾模式.目的是對一個只有基本功能類實現功能的擴展.因為可能有多個功能塊而且各個功能塊可以組合形成更強的功能.如果是用繼承,那麼產生的類的個數將會是所有功能塊個數的組合.例如:5個功能塊,將會達到5*4*3*2*1個類.而如果用裝飾模式.卻只需要有5個功能塊的裝飾類就可以實現.

工作方式:

              裝飾類和基本功能類具有相同的接口.它本身是基本功能類的子類.這也能使裝飾類本身成為其它裝飾類的"基本功能類"的引用.從而組合形成更為強大的類.

             裝飾類具有一個對基本功能接口的引用,以便將新增的功能附加到基本功能類上.

  • 創建型:
  1. Abstract Factory模式:抽象工廠模式.目的是為了實現運行時的多態.例如同樣是服裝厂,有生產t恤 夾克 西裝 運動衫等的工廠.當然服裝厂的產品也有t恤 夾克 西裝 運動衫.當一個服裝厂的客戶在口頭上說我可能需要訂購一批服裝而沒有指明是什麼服裝時.就可以使用這種模式.到真正生產的時候才指定是要生產什麼.

工作方式:

工廠是接口.而具體實現則代表哪種類型的服裝廠.產品也是接口.而具體哪種產品是產品的實現.在工廠接口中,我們只會產產品,而不會產品具體哪種產品.

分享到:
评论

相关推荐

    二十三种设计模式【PDF版】

    2.设计模式是比 J2EE 等框架软件更小的体系结构,J2EE 中许多具体程序都是应用设计模式来完成的,当你深入到 J2EE 的内 部代码研究时,这点尤其明显,因此,如果你不具备设计模式的基础知识(GoF 的设计模式),你很难...

    设计模式 GOF 23

    另外,这也不是一篇高级专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从...

    软件设计模式与体系结构练习题

    在软件开发领域,设计模式和体系结构是至...通过这些练习,学习者能够深入理解设计模式和体系结构的概念,提升软件开发的专业技能。同时,这些练习也鼓励学习者思考如何在实际项目中灵活运用这些知识,以解决复杂问题。

    设计模式:可复用面向对象软件的基础--详细书签版

     另外,这也不是一篇高级专题技术论文,而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分

    本篇将深入探讨标题中提及的几种设计模式:Model-View-Controller(MVC)模式、单例模式、代理模式以及工厂模式,尤其是简单工厂模式。 **1. Model-View-Controller (MVC) 模式** MVC模式是一种架构模式,它将应用...

    硬啃设计模式(张传波)PDF

    第二篇“创建设计模式”涉及的是与对象创建有关的模式。这可能包括工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、单例模式(Singleton)、建造者模式(Builder)和原型模式(Prototype)。这些...

    15 把设计模式和模型联系起来 237-246.rar

    本压缩包文件"15 把设计模式和模型联系起来 237-246.rar"可能包含了一篇关于如何将设计模式与模型相结合的文章或教程,涵盖了第237页至246页的内容。虽然具体的章节细节未给出,但我们可以根据常规的软件开发知识来...

    设计模式_简单易懂的例子,且很有意思

    本篇文章将重点介绍四种常用的设计模式:策略模式、代理模式、单例模式以及多例模式。 #### 一、策略模式 **定义**: 策略模式定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。策略模式让算法的...

    漫谈设计模式

    对于那些希望通过学习设计模式来提升自己的面向对象编程技能的读者来说,本书尤其有价值。 总之,《漫谈设计模式》是一本全面而深入的指南,它不仅帮助读者理解和应用面向对象设计的核心原则,而且还通过一系列实用...

    java语言程序设计提高篇+进阶篇第十版

    《Java语言程序设计提高篇+进阶篇第十版》是一本深入探讨Java编程技术的权威著作,适合已经掌握Java基础的开发者进一步提升自己的技能。这本书的第十版充分反映了Java语言的最新发展,包括Java 8及更高版本的重要...

    C++程序设计-原理-与-实践第2版—进阶篇.pdf

    7. **设计模式**:在进阶篇中,可能会讨论一些常见的设计模式,如工厂模式、单例模式、观察者模式等,这些模式是解决软件设计中常见问题的成熟解决方案。 8. **性能优化**:书中会讲解如何通过内存管理、算法优化和...

    Altera FPGA/CPLD设计(高级篇)第2版

    《Altera FPGA/CPLD设计(高级篇)第2版》是针对电子工程领域的一本专业书籍,专注于介绍如何利用Altera公司的FPGA(Field-Programmable Gate Array)和CPLD(Complex Programmable Logic Device)进行高级设计。...

    并行编程中的设计模式.docx

    文章的第二部分将详细阐述这八大常用的设计模式,并通过实例来帮助理解。通过实例学习是掌握这些模式的有效途径。例如,可能会讨论“recursive splitting”算法模式,它用于将大问题分解成小问题进行并行处理,而...

    Java语言程序设计(基础篇+进阶篇)第六版 答案(不含编程题)

    7. **设计模式**:讲解常用的面向对象设计模式,如工厂模式、单例模式、观察者模式等。 8. **JVM原理**:内存模型,垃圾回收,性能优化,以及JVM调优的基本方法。 提供的PDF文件名列表,如28review.pdf、08review....

    Vim实用技巧:使用模式入门篇(第2版)

    《Vim实用技巧:使用模式入门篇(第2版)》是一本专为初学者设计的指南,旨在帮助读者快速掌握Vim的基本操作和进阶技巧。 在Vim中,有三种主要的工作模式:正常模式、插入模式和命令行模式。这些模式的理解和熟练运用...

    java设计模式教程+源码

    根据提供的文件信息,本篇文章将围绕“Java设计模式教程+源码”这一主题展开深入讨论。设计模式是在软件开发过程中经过验证的解决方案,用于解决在特定情境下出现的设计问题。对于Java开发者而言,掌握设计模式不仅...

    C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式)

    标题中的“C#面向对象设计模式纵横谈(9):Composite组合模式(结构型模式)”明确了文章的主题聚焦于C#语言环境下的设计模式探讨,具体到第9篇讨论的是“Composite组合模式”。这一模式属于结构型模式的一种,旨在解决...

Global site tag (gtag.js) - Google Analytics