- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java设计模式101
Java设计模式101
设计模式概述
1、设计模式的简史
设计模式第一次是由架构设计师 Christopher Alexander 在他所著的 A Pattern Language: Towns, Buildings, Construction(Oxford University Press,1977)一书中提到的。他引入了这一概念,并称为模式 — 对于反复出现设计问题的抽象解决方案 — 这一概念吸引了其它领域中一些研究人员的注意,特别是二十世纪八十年代中后期,那些开发面向对象的软件人员。
对软件设计模式的研究造就了一本可能是面向对象设计方面最有影响的书籍:Design Patterns: Elements of Reusable Object-Oriented Software(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995;请参阅参考资料)。这几位作者常被称为“四人组(Gang of Four)”,而这本书也就被称为“四人组(或 GoF)”书。
在《设计模式》这本书的最大部分是一个目录,该目录列举并描述了 23 种设计模式。另外,近来这一清单又增加了一些类别,最重要的是使涵盖范围扩展到更具体的问题类型。例如,Mark Grand 在 Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML(即后述《模式 Java 版》一书)中增加了解决涉及诸如并发等问题的模式,而由 Deepak Alur、John Crupi 和 Dan Malks 合著的 Core J2EE Patterns: Best Practices and Design Strategies 一书中主要关注使用 Java 2 企业技术的多层应用程序上的模式。
有一个活跃的模式社区,它收集一些新模式,继续研究原有模式,并且领导大家推广模式。尤其值得一提的是,Hillside Group 主办了许多会议,其中包括在专家的指导下向初学者介绍模式。提供了有关模式和模式社区方面的信息的其它来源。“四人组”将模式描述为“在一定的环境中解决某一问题的方案”。这三个事物 — 问题、解决方案和环境 — 是模式的基本要素。给模式一个名称,考虑使用模式将产生的结果和提供一个或多个示例,对于说明模式也都是有用的。
不同的编目员使用不同的模板来说明它们的模式。不同的编目员对于模式的各个不同部分还使用不同的名称。每个类别对于每个模式的详细程度和分析级别上也有所不同。下面几页描述了《设计模式》和《模式 Java 版》中所使用的一些模板。《设计模式》使用下列模板:
模式名称和分类:模式的概念性句柄和类别
意图(Intent):模式解决什么样的问题?
别名:模式的其它常见名称
动机:阐明问题的方案
适用性:在什么情况下使用模式?
结构:使用“对象建模技术(Object Modeling Technique,OMT)”的图
参与者:设计中的类和对象
协作:设计中的类和对象如何协作
结果:模式实现了哪些目标?它又失去了什么?
实现:要考虑的实现细节、特定语言问题
样本代码:用 Smalltalk 和 C++ 语言编写的样本代码
已知应用:现实世界中的示例
相关模式:对相关模式的比较和讨论 《模式 Java 版》使用下列模板:
模式名称:模式的名称和对模式进行第一次描述时的引用
提要(Synopsis):模式的简短描述
环境:对模式要解决的问题的描述
推动力:促使解决方案形成所需考虑事项的描述
解决方案:一般解决方案的描述
结果:使用模式的结论
实现:要考虑的实现细节
Java API 用法:当 Java API 可用时,是指 Java API 的示例
代码示例:用 Java 语言编写的代码示例
相关模式:一组相关模式 首先要学习的最重要内容是每个模式的意图和环境:这个模式在什么情况下要解决什么问题。本教程只讲述一些最重要的模式,接下来,对于那些勤奋的开发人员,建议浏览一些类别并挑出关于每个模式的信息。在《设计模式》中,要阅读的相关章节是“意图”、“动机”和“适用性”。在《模式 Java 版》中,相关章节是“提要”、“环境”和“推动力与解决方案”。进行背景研究可以帮助您确定一种模式,这种模式能提供所面临的设计问题的一种解决方案。然后,在详细考虑这个解决方案和它的结果之后,针对适用性,进一步评估这个候选模式。如果不行,可以看看相关模式。
在某些情况下,可能会发现可以有效地使用多个模式。而在另一些情况下,可能没有合适的模式,或者在性能或复杂性方面,使用合适的模式可能
文档评论(0)