程序设计的模式语言·卷1
基本信息
内容简介回到顶部↑
panern languages of program design(plop,程序设计模式语言)的第一次大会是一次分水岭式的事件,向公众宣告了软件开发模式运动的开始。来自世界各地的70位软件专家汇聚一堂,交流和深化(源自称作“优秀设计”的高质量的)软件经验。本书是新的软件作品流派广泛交流融会贯通的结果。.
模式是一种文字形式,其灵感源自文字编程、同时代的体系结构中的同名设计运动以及不同文化的永恒文学形式的共通经验。模式文法的目的是帮助程序员解决在设计和编程中遇到的共同的问题。跨越的学科是很广泛的(如客户/服务器编程,分布式处理。组织设计、软件重用和人机界面设计),本书汇集了长期存在于设计专家头脑中的宝贵经验。通过将专家经验表示为(由形成候选解决方案的讨论所支持的)“问题一解决方案”和表明设计师意图的基本原理,这些模式体现着伟大软件设计的精髓。...
模式是一种文字形式,其灵感源自文字编程、同时代的体系结构中的同名设计运动以及不同文化的永恒文学形式的共通经验。模式文法的目的是帮助程序员解决在设计和编程中遇到的共同的问题。跨越的学科是很广泛的(如客户/服务器编程,分布式处理。组织设计、软件重用和人机界面设计),本书汇集了长期存在于设计专家头脑中的宝贵经验。通过将专家经验表示为(由形成候选解决方案的讨论所支持的)“问题一解决方案”和表明设计师意图的基本原理,这些模式体现着伟大软件设计的精髓。...
作译者回到顶部↑
本书提供作译者介绍
James O.Coplien是AT&T贝尔实验室软件生产研究部门的成员。他的研究方向主要集中在多范例开发方法和软件开发过程的组织人类学。.
Douglas C.Schmidt是Washington University(位于St.Louis,Missouri)计算机科学系的教员。他的研究方向主要是为高速网络开发面向对象并行通信系统的实践技术。...
.. << 查看详细
Douglas C.Schmidt是Washington University(位于St.Louis,Missouri)计算机科学系的教员。他的研究方向主要是为高速网络开发面向对象并行通信系统的实践技术。...
.. << 查看详细
目录回到顶部↑
第1部分 框架和组件.
第1章 功能点选 4
第2章 一套基于工具和材料比喻的工具构造和集成模式语言 6
背景和动机 6
总体方法 7
中心思想和设计比喻 7
设计比喻和设计模式之间的区别 8
工具和材料比喻 9
工具构造和集成设计模式 12
图形符号 12
设计模式线路图 12
工具构造设计模式 14
单个工具设计模式的应用 22
工具集成 23
扩展范例 23
工具集成设计模式 24
展望:系统边界 27
实际运转的工具和材料 28
工具和材料比喻 30
展望 30
第1章 功能点选 4
第2章 一套基于工具和材料比喻的工具构造和集成模式语言 6
背景和动机 6
总体方法 7
中心思想和设计比喻 7
设计比喻和设计模式之间的区别 8
工具和材料比喻 9
工具构造和集成设计模式 12
图形符号 12
设计模式线路图 12
工具构造设计模式 14
单个工具设计模式的应用 22
工具集成 23
扩展范例 23
工具集成设计模式 24
展望:系统边界 27
实际运转的工具和材料 28
工具和材料比喻 30
展望 30
前言回到顶部↑
PLoP(Pattern Languages of Program Design)创立的宗旨是创造新文件。这暗示着PLoP的创始人对现有的文化有些不满,事实的确如此。这些创始人(面向对象编程社区的几位知名人物)已经意识到:他们的才华已受到文件偏见的限制。这种偏见源于科学出版物的传统,一言以蔽之就是喜新厌旧,总是追逐最新最近的发明或发现,而忽视传统的东西,而不论这些所谓的发明或发现是否有用。PLoP的创始人对传统的兴趣也许源自他们对软件重用的研究,或者来自他们的观察:尽管采用了最新的技术,但是由于缺少常用的解决方案,项目最终还是失败了。最重要的是:所有的创始人一致认为他们应该集中精力从事解决方案的推广。PLoP大会就是在这种背景下召开的。.
本书是“模式形式”系列书籍的第一部,这是我们心目中最佳的解决方案共享方式。我们要求作者提交“模式形式”方面的论文,但不要求实际地阐述形式的含义。Christopher Alexander创造了“模式语言”这一术语并且在他的著作The Timeless Way of Building中很好地阐述了该形式。很多作者对这项工作都很熟悉,而更多的人则是通过OOPSLA研讨会和Internet讨论组了解到它的。即便如此,我们还是感到各位作者希望畅言如何将Alexander的形式应用到计算机编程领域。有一点我们始终坚持:每篇论文描述一个解决方案,可以用来解决一个问题。
读者在阅读本书时会发现,各位作者的解决方案所覆盖的问题范围相当广。这也意味着并非每一章都能引起读者同等的兴趣。我们希望随着PLoP社区的发展和成熟,PLoP自身能随着兴趣方向而分化。未来的书籍不会要求它们有如此广泛的读者。在此我们希望读者能够细读每一章,即使您并不打算立即应用所读到的内容,也可以启发表达模式的新灵感,并且的确会提出一个角度来理解开发软件如此困难的原因。
虽然涉及的主题丰富多样,PLoP的作者和参与者之间却达成了一些令人惊叹的共识。例如,多数人都已发现:解决方案(模式的本质)可以轻松超越其表达形式的准确特性。模式最终必定停留在人的头脑中,所以各种书写风格(从标准模板的标签化分节到更具风格的运行段落)对模式成功的贡献都不如一些更基本的元素。这些元素包括:设立问题及其上下文,分析施加于解决方案的影响力,以及(最重要的)提供具体的解决方案。包含这些元素的模式都成功了。..
PLoP'94的核心特色就是作者研讨会,作者听取对他们论文的小组讨论并就其中的亮点和不足展开争论,而不是把论文发给每位听众了事。这就给了作者一个机会,不仅知道如何交流,还能发现他们所研究的技术的其他替代方案。(几十年前在创作性写作社区发源而来的)作者研讨会是新作者学习前辈的经验技巧推敲他们见解的重要论坛。我们很感谢Richard Gabrief在1994年春天把我们领入作者研讨会。就我们所知,这是它第一次被用于技术社区,不过看起来效果甚佳。
这就是促生本书的理念和过程。我们对结果很满意,相信各位读者也会。因此我们要全速前进。每周我们都会发现新的证据:我们和我们的作者所促成的焦点转移对我们编写程序的方法具有深远的影响。他们也通过实例昭示了我们对软件工程未来的憧憬。
参与本书翻译和审校工作的有:谢文亮、马睿倩、梁金昆、张丽萍、王新彦、刘敏、李娟、刘颖、吴东升、郑刚、李楠、贺倩、李蓉、张颖、刘伟、王彦、王婷、李晓东、吴玲、胡静、张旭、王东、张雄、卢冰、高宏、李晓梅、汪刚、张健、刘洋、苏建忠、王欣轩、于涛、李敏等,在此表示感谢。...
本书是“模式形式”系列书籍的第一部,这是我们心目中最佳的解决方案共享方式。我们要求作者提交“模式形式”方面的论文,但不要求实际地阐述形式的含义。Christopher Alexander创造了“模式语言”这一术语并且在他的著作The Timeless Way of Building中很好地阐述了该形式。很多作者对这项工作都很熟悉,而更多的人则是通过OOPSLA研讨会和Internet讨论组了解到它的。即便如此,我们还是感到各位作者希望畅言如何将Alexander的形式应用到计算机编程领域。有一点我们始终坚持:每篇论文描述一个解决方案,可以用来解决一个问题。
读者在阅读本书时会发现,各位作者的解决方案所覆盖的问题范围相当广。这也意味着并非每一章都能引起读者同等的兴趣。我们希望随着PLoP社区的发展和成熟,PLoP自身能随着兴趣方向而分化。未来的书籍不会要求它们有如此广泛的读者。在此我们希望读者能够细读每一章,即使您并不打算立即应用所读到的内容,也可以启发表达模式的新灵感,并且的确会提出一个角度来理解开发软件如此困难的原因。
虽然涉及的主题丰富多样,PLoP的作者和参与者之间却达成了一些令人惊叹的共识。例如,多数人都已发现:解决方案(模式的本质)可以轻松超越其表达形式的准确特性。模式最终必定停留在人的头脑中,所以各种书写风格(从标准模板的标签化分节到更具风格的运行段落)对模式成功的贡献都不如一些更基本的元素。这些元素包括:设立问题及其上下文,分析施加于解决方案的影响力,以及(最重要的)提供具体的解决方案。包含这些元素的模式都成功了。..
PLoP'94的核心特色就是作者研讨会,作者听取对他们论文的小组讨论并就其中的亮点和不足展开争论,而不是把论文发给每位听众了事。这就给了作者一个机会,不仅知道如何交流,还能发现他们所研究的技术的其他替代方案。(几十年前在创作性写作社区发源而来的)作者研讨会是新作者学习前辈的经验技巧推敲他们见解的重要论坛。我们很感谢Richard Gabrief在1994年春天把我们领入作者研讨会。就我们所知,这是它第一次被用于技术社区,不过看起来效果甚佳。
这就是促生本书的理念和过程。我们对结果很满意,相信各位读者也会。因此我们要全速前进。每周我们都会发现新的证据:我们和我们的作者所促成的焦点转移对我们编写程序的方法具有深远的影响。他们也通过实例昭示了我们对软件工程未来的憧憬。
参与本书翻译和审校工作的有:谢文亮、马睿倩、梁金昆、张丽萍、王新彦、刘敏、李娟、刘颖、吴东升、郑刚、李楠、贺倩、李蓉、张颖、刘伟、王彦、王婷、李晓东、吴玲、胡静、张旭、王东、张雄、卢冰、高宏、李晓梅、汪刚、张健、刘洋、苏建忠、王欣轩、于涛、李敏等,在此表示感谢。...
序言回到顶部↑
在以系统而极为易懂的方式确定和优化各种软件开发专家意见而做的大量努力方面,本书达到了前所未有的高度。本书以发表在First Annual of Conference of Pattern Languages of Programs(PLoP)的论文为基础(此次大会于1994年8月在伊利诺斯州的Monticello附近举行)。但是本书不仅仅是大会论文的大纲而已。本书的内容大量源自关于面向对象设计模式的新文献成果,它是关于正在不断发展壮大的软件模式与模式语言领域的系列文献汇编的第1部。.
设计模式捕获了在特定上下文中开发应用程序时重复出现的解决方案的静态和动态结构。因为它们将软件系统开发中最基本的挑战暴露无遗,所以设计模式是改善软件质量的重要技术手段。设计模式所反映的关键挑战包括:在开发人员之间交流体系结构知识,适应新的设计范例或体系结构风格以及避免通常只有通过(痛若的)经验才能领略到的开发陷阱和缺陷。
模式文献的大量积累业已存在——不是关于软件的而是关于建筑施工的。Christopher Alexander从15年前就开始改善其架构模式形式,并且不再参照数百年前的架构模式,但到了最近模式才在软件中起关键作用。Peter Coad在1992年发表了一篇CACM文章(Coad,1992),在文中他记录了Alexandrian模式和软件体系结构之间的联系。直到1993年模式才作为研讨会、会议专题和期刊出版物的成果进入日常话题。Erich Gamma等人的草稿Design Patterns(1995)在1993年和1994年被广泛传播。这项里程碑式的工作以书面形式提供了第1个软件模式的全面集合并确立了模式形式的新标准。Peter Coad后来的工作在其著作Object Models: Strategies, Patterns, and Applications(Coad,1995)中登峰造极。Strategies, Patterns, and Applications(Coad,1995)各种文献的雏形比这本书中收集的各种模式更有价值。..
如果读者仔细阅读本书,就会发现众多不同的模式形式。有些模式吸取了Alexander的风格,而其他一些则得益于Erich Gamma及其同事的贡献,还有一些源自Peter Coad的模式,而有些则完全是原创的。我们尽全力保留作者的原创形式,并且尽量避免对各表达方式进行改动:我们从不强制任何统一的写作风格。尽管本书缺少单个作者的声音,但是我们也不会以其他形式引入。希望广大读者能与我们一同庆祝新文献正文的成形阶段的多样性。
本书各章的确出自同期软件文献中最热门的文献汇编。编纂工作是正在进行的、循环的工作。在大会召开前,各位作者与来自模式社区的“领导者”一道工作,目的就是使每个模式都包含纯粹的精髓:清晰的问题陈述、体现问题的解决方案以及推动解决方案的力量的清晰表述。然后每一章都在PLoP'94大会的作者研讨会中经历了深入的编辑:作者、评论者以及其他研讨会参与者在一起讨论每篇论文的亮点和不足。评论者更倾向于强调积极方面并对内容、风格和表达方式提出建设性意见。
产品编辑也是集体努力的成果。在The Hillside Group与同事进行的讨论为早期编辑决策指引了方向。当我们把精力集中在资料的逻辑组织结构上时,我们在Addison-Wesley的朋友创造了一种统一设计,将被动动词和虚拟前置词都去掉,并且在后勤、版权谈判和许多细节上给予我们很大支持。尽管他们与我们的学究口味不同,但是在页面设计和格式化方面对所有文字资料的可读性贡献卓著。因此,尽管我们收到了各种格式的手稿,但我们在尽力将它们整合为单一设计的同时保留了每种格式的精髓。
如果没有Deborah Lafferty、Penny Stratton和Tom Stone的帮助我们无法完成此书,他们为这本书所倾注的细心和关注如同对待自己的作品一样。我们为有他们这样的团队成员感到骄傲和高兴,而最最重要和特别的是深深的谢意。
最后,我们需要强调:如果没有各位作者的智慧、勤劳和奉献就不会有这本书。世界上任何审稿工作都不能代替高质量的作品,能与这些出色的作者一起工作我们深感荣幸。...
J.O.C.
D.C.S
设计模式捕获了在特定上下文中开发应用程序时重复出现的解决方案的静态和动态结构。因为它们将软件系统开发中最基本的挑战暴露无遗,所以设计模式是改善软件质量的重要技术手段。设计模式所反映的关键挑战包括:在开发人员之间交流体系结构知识,适应新的设计范例或体系结构风格以及避免通常只有通过(痛若的)经验才能领略到的开发陷阱和缺陷。
模式文献的大量积累业已存在——不是关于软件的而是关于建筑施工的。Christopher Alexander从15年前就开始改善其架构模式形式,并且不再参照数百年前的架构模式,但到了最近模式才在软件中起关键作用。Peter Coad在1992年发表了一篇CACM文章(Coad,1992),在文中他记录了Alexandrian模式和软件体系结构之间的联系。直到1993年模式才作为研讨会、会议专题和期刊出版物的成果进入日常话题。Erich Gamma等人的草稿Design Patterns(1995)在1993年和1994年被广泛传播。这项里程碑式的工作以书面形式提供了第1个软件模式的全面集合并确立了模式形式的新标准。Peter Coad后来的工作在其著作Object Models: Strategies, Patterns, and Applications(Coad,1995)中登峰造极。Strategies, Patterns, and Applications(Coad,1995)各种文献的雏形比这本书中收集的各种模式更有价值。..
如果读者仔细阅读本书,就会发现众多不同的模式形式。有些模式吸取了Alexander的风格,而其他一些则得益于Erich Gamma及其同事的贡献,还有一些源自Peter Coad的模式,而有些则完全是原创的。我们尽全力保留作者的原创形式,并且尽量避免对各表达方式进行改动:我们从不强制任何统一的写作风格。尽管本书缺少单个作者的声音,但是我们也不会以其他形式引入。希望广大读者能与我们一同庆祝新文献正文的成形阶段的多样性。
本书各章的确出自同期软件文献中最热门的文献汇编。编纂工作是正在进行的、循环的工作。在大会召开前,各位作者与来自模式社区的“领导者”一道工作,目的就是使每个模式都包含纯粹的精髓:清晰的问题陈述、体现问题的解决方案以及推动解决方案的力量的清晰表述。然后每一章都在PLoP'94大会的作者研讨会中经历了深入的编辑:作者、评论者以及其他研讨会参与者在一起讨论每篇论文的亮点和不足。评论者更倾向于强调积极方面并对内容、风格和表达方式提出建设性意见。
产品编辑也是集体努力的成果。在The Hillside Group与同事进行的讨论为早期编辑决策指引了方向。当我们把精力集中在资料的逻辑组织结构上时,我们在Addison-Wesley的朋友创造了一种统一设计,将被动动词和虚拟前置词都去掉,并且在后勤、版权谈判和许多细节上给予我们很大支持。尽管他们与我们的学究口味不同,但是在页面设计和格式化方面对所有文字资料的可读性贡献卓著。因此,尽管我们收到了各种格式的手稿,但我们在尽力将它们整合为单一设计的同时保留了每种格式的精髓。
如果没有Deborah Lafferty、Penny Stratton和Tom Stone的帮助我们无法完成此书,他们为这本书所倾注的细心和关注如同对待自己的作品一样。我们为有他们这样的团队成员感到骄傲和高兴,而最最重要和特别的是深深的谢意。
最后,我们需要强调:如果没有各位作者的智慧、勤劳和奉献就不会有这本书。世界上任何审稿工作都不能代替高质量的作品,能与这些出色的作者一起工作我们深感荣幸。...
J.O.C.
D.C.S








点击看大图



加载中...

