`
isiqi
  • 浏览: 16453675 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多
1、模式的定义:
什么是模式?应该没有一个很精确的定义,但我们可以通俗的来说。模式是特定的‘语境’中重复出现的设计‘问题’的‘解决方案’。模式是人们经验的积累,人们利用经验来指导新的软件的设计。
2、模式的分类:
由模式用于解决问题的规模和它的抽象程度高低来划分,由高至低可分为体系结构模式(architectural pattern)、设计模式(design pattern)和惯用法(idiom)。
我们通常讨论的都是设计模式。体系结构模式很容易理解,即如何设计一个应用系统范围的结构特性。在有了整体架构后,就需要用设计模式来解决一些子系统的模块的细化的设计问题。可能大家唯独对惯用法模式比较陌生。体系结构模式和设计模式都是语言无关的,独立与具体语言,抽象度高。而惯用法则是针对某一种具体编程语言的底层模式。描述如何使用给定语言的特性来解决问题。比如在C++中如何编程解决垃圾回收的问题,而显然Java中就不用考虑这个问题。这就是惯用法。代码层次的模式,代码层次的编程经验。
3、模式语言:
通过体系结构模式的指导确定软件的体系结构。设计模式呢则解决某一具体问题的设计问题,如工厂模式,单例模式等解决对象创建问题。由体系结构模式到设计模式,这个跨度十分大,模式语言正好解决这个问题。
模式语言是一组相关模式的组合。通常一些设计模式单独使用意义不大,而通常是一组模式结合着使用的。例如一个分布式J2EE应用的业务层通过值对象来进行数据传递(值对象模式),通过一个代理来给其它层提供服务(代理模式),通过封装复杂的调用提供一个简单统一的调用(门面模式),而在该应用的显示层则采用(装饰器模式)等等模式。这样,这一能解决某一问题的整套模式的集合,就是一个模式语言。它解决问题的粒度更大。
4、模式库(pattern repository):
就是存放模式的一个仓库,呵呵。是一个存放人们成功设计经验的仓库。将各种模式分类、描述和存储,提供方便的检索和浏览方式,让人们学习模式,学习模式的使用。
5、模式的采掘:
模式既然是人们的经验,显然我们不能够发明模式,而只能够从已进行的设计中总结成功的经验,发现模式。这个过程,就是模式采掘。

模式的层次
1、讨论如何更好的描述设计模式,讨论模式之间的关系,如何分类和组织模式,以让后来者系统的学习。
2、讨论模式语言,用多个模式的组合解决更大更复杂的问题。如何描述和分类组织模式语言。
3、讨论软件体系结构模式,提出某一应用领域的软件的体系结构的设计,并讨论如何描述和如何应用之。
4、讨论如何采掘模式,发现新的模式。在已开发的多个系统中采掘成功的设计经验,然后描述并提出。
5、讨论如何构建一个模式库。这个模式库应具有的功能,她如何分类描述各种模式,如何描述模式间的关系。

以上共有五点,其实,最终可归纳为一点,即第五点,前四点都是为第五点而服务的。模式库的研究也就是研究如何对设计模式,模式语言,体系结构模式的分类和描述,如何采掘新模式等等。本人想建立一个体系结构模式库和设计模式模式库,收集、分类、组织和索引模式。或让新手学习过来人的成功经验,或基于这些模式以及结合构件库系统形成半自动的大规模的基于复用开发的软件生产线。

我们先讨论一下模式分类吧。现在我知道的有如下一些分类方法:
1、按规模和抽象程度划分:
体系结构模式、设计模式、惯用法。
2、按解决的问题划分:
例如分布式系统、交互式系统、访问控制、通信、资源处理等问题。
3、1+2,模式类别+问题类别,形成一个二维的模式分类图式。

随着模式库中模式的不断增多,理解和使用模式库就越困难。一个好的模式分类方法,有助于人们更好的理解模式。好的模式分类图式需具有如下一些特性:
+简单、易学,而不是复杂、难使用;
+少而精的分类标准;
+每个分类标准反应模式的自然属性;
+根据该分类能让用户找到一组可能适用的模式,而不是找到唯一适用模式;
+应对新模式的集成开发,而不需要对现有分类进行重构。

分享到:
评论

相关推荐

    融媒体环境下航海地图集的设计模式探讨.docx

    融媒体环境下航海地图集的设计模式探讨 摘要:在融媒体环境下,航海地图集的设计思路体现出新需求。本文回顾了航海地图集发展的历史进程,梳理了发展脉络,总结了融媒体时代航海地图集的新特征,提出了综合航海地...

    在线大学生影视网站开发设计模式探讨.pdf

    在线大学生影视网站开发设计模式探讨 本文探讨了在线大学生影视网站的开发设计模式,以满足大学生需求提供丰富的影音信息和资源。文章首先介绍了网站建设的背景和目的,然后详细介绍了基于PHP技术的相关技术,包括...

    以活动元为基础的课堂教学设计模式探讨.doc

    以活动元为基础的课堂教学设计模式探讨.doc

    大型商业物业全产权化投资品种设计模式探讨.doc.docx

    大型商业物业全产权化投资品种设计模式探讨.doc.docx

    电子信息工程技术专业基于工学结合的毕业设计模式探讨.pdf

    为解决这些问题,需要改革毕业设计的实施过程,实施基于工学结合的毕业设计模式。 工学结合的毕业设计模式具备以下优点: 1. 提供丰富软硬件资源。校内实验、实训、毕业设计所需硬件条件有限,难以满足学生需求。...

    设计模式探讨--工欲善其事,必先利其器

    Lucid.Spec、GUI.DesignConcept、Draw.WebWave 界面设计与演示工具 呵呵 ,多数行业外客户是属于眼见为实的人,你对他讲uml,数据库表是白搭,他不会理你的,你只能把原型界面先给他看 2.程序策略:

    24种设计模式以及混合设计模式

    在本文中,我们将深入探讨24种设计模式,并结合混合设计模式的概念,以及它们在实际项目中的应用案例。 首先,设计模式分为三大类:创建型、结构型和行为型。创建型设计模式关注对象的创建过程,如单例模式...

    Head First 设计模式 +Java设计模式(第2版)

    《Head First 设计模式》与《Java设计模式(第2版)》是两本非常重要的IT书籍,专注于软件开发中的设计模式。设计模式是解决软件设计中常见问题的经验总结,它们提供了一种标准的方法来处理特定场景下的问题,使得代码...

    设计模式解析.pdf

    《设计模式解析》这一标题暗示了书籍将深度探讨各种设计模式,包括其原理、应用及背后的思维逻辑,帮助读者掌握并灵活运用这些模式来优化软件设计。 #### 描述解析:设计模式的入门与精通之路 描述中提到设计模式...

    设计模式(包含5个设计模式)含源代码报告.rar

    这个压缩包文件"设计模式(包含5个设计模式)含源代码报告.rar"显然是一份宝贵的资源,它涵盖了五个核心的设计模式,并附带了详细的类图、源代码以及文档报告,这对于学习和理解设计模式至关重要。 首先,我们要探讨...

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

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

    新版设计模式手册 - C#设计模式(第二版)

    《新版设计模式手册 - C#设计模式(第二版)》是一部深入探讨C#编程中设计模式的权威指南,尤其适合已经有一定C#基础并希望提升软件设计能力的开发者阅读。设计模式是解决软件开发中常见问题的经验总结,是软件工程的...

    六种微服务架构的设计模式.pdf

    在这篇文章中,我们将探讨六种常见的微服务架构设计模式:聚合器微服务设计模式、代理微服务设计模式、链式微服务设计模式、分支微服务设计模式、数据共享微服务设计模式和异步消息传递微服务设计模式。 聚合器...

    设计模式那点事

    在这里,我们将深入探讨设计模式的核心概念、分类以及它们在实际开发中的应用。 首先,设计模式基于面向对象编程思想,其核心目标是提高代码的可复用性、可读性和可维护性。设计模式不直接提供代码实现,而是描述在...

    《Java设计模式》课程设计报告.docx

    《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...

    设计模式解析

    "设计模式解析(第二版)"这本书很可能深入探讨了这些模式的原理、使用场景和最佳实践。它可能会详细解释每一种模式的意图、结构、参与者以及模式间的区别和联系。此外,书中还可能包含大量示例代码,帮助读者理解...

    c嵌入式设计模式

    嵌入式系统设计模式是在嵌入式系统开发领域中,针对特定问题的解决方案的模板或模式。由于嵌入式系统具有资源有限、实时性强、安全性要求高等特点,因此在设计时往往需要使用特定的设计模式来应对这些挑战。本书《C...

    设计模式大作业.zip

    接下来,我们将深入探讨这些设计模式及其在实际开发中的应用。 首先,简单工厂模式是一种创建型设计模式,它提供一个静态方法来创建对象,而不直接暴露构造函数。这种模式适用于当类的实例化逻辑相对简单且不会频繁...

    23种设计模式(C++).pdf

    《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》是一本深入探讨软件设计模式的书籍,它涵盖了创建型、结构型和行为型三种主要类型的23个经典设计模式,并提供了C++语言的实现代码。设计模式是软件工程中的...

Global site tag (gtag.js) - Google Analytics