- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java设计模式超越四人组
Java设计模式201 正在使用的模式 概述 在这一节和接下来的两节,我们会查找、评估和使用几种设计模式来构建一个基于 Web 的应用程序。该应用程序允许用户从网站上订购影片。我们将使用 4 种设计模式构建该应用程序:2 种商业模式、1 种 Web 表现模式和 1 种 J2EE 模式。首先看看商业模式。 商业模式 特定于纵向联合的商业应用程序问题的模式查找起来比较困难。幸运的是,目前市面上有两本书:Patterns for e-business: A Strategy for Reuse 和 SanFrancisco Design Patterns: Blueprints for Business Software,讲述的几乎全都是商业模式。(有关这些书籍的详细信息,请参阅 HYPERLINK file:///D:\\学习文档\\新建文件夹\\Java设计模式201:超越四人组\\j-patterns201\\j-patterns201-7-3.html 参考资料。) 每本书描述的商业模式在颗粒度方面差异较大。第一本书 Patterns for e-business,讲述的是粗颗粒度的体系结构模式。这些模式适于帮助您选择构造和架构电子商务系统的途径。由于这些模式在本质上是体系结构化的,所以就不在这里实现它们了。进一步学习这些模式可能会使您受益,但是,需要特别注意这些体系结构化模式与低级别设计模式有何区别。 SanFrancisco Design Patterns: Blueprints for Business Software 介绍的是低级别设计模式,与 GOF 模式的结构类似。这些模式中的两种:Property Container 模式和 Simple Policy 模式,它们将是“影片订购”应用程序的基础。 Property Container模式 Property Container 是基本模式。它的功能是确保构建和部署应用程序之后,可以动态地扩展它们。 考虑一下“影片订购”应用程序。当设计表示影片的类时,不可能自己一个人就把描述影片的特性全都考虑周全。但是作为一名称职的设计者,应当确保在需要时能够用额外数据扩展影片类。一些扩展机制需要程序员重新编译代码,并重新部署要扩展的类。Property Container 却相反,它为我们提供了一种在运行时利用额外特性动态地扩展对象的机制。当然,创建 Property Container 只是开始;一旦添加了新特性,应用程序可能还需要明确使用新特性的模块。 目前有多种机制可以使 Movie 类成为 Property Container。我们使用的是一种相当简单的方法:为 Property Container 创建标准接口,然后,使所有我们希望能在运行时修改的接口和类继承或实现该接口。 在接下来几页中,我们会设计一个 Property Container 接口,然后继承该接口 来定义 Movie 接口,Movie 接口是“影片订购”应用程序的基础。我们还会为 Property Container 和 Movie 接口实现具体类。 设计Property Container 在下面的 UML 类图中,请注意我们已经创建了一个很简单的 Property Container 接口和一个抽象实现,类可以继承它们: 可以看到,在 Property Container 中有四种方法用于添加、除去和查询特性。特性由 String 键标识。在具体实现中,当特性添加到 Movie 类时,仅用散列表存储它们。 这里使用的是很简单的 Property Container 设计和实现,而实际的模式有一些重要扩充。这些扩充说明了模式在更健壮、更广泛的实现中发挥作用的不同方式。例如,如果对象处于运行时对象的层次结构中,那么 Property Container 模式就允许遍历这个运行时的层次结构。 运行时层次结构的一个示例是:一个部门隶属于另一个部门,后者又隶属于一个公司。为获得会计代码而对部门的动态特性进行查询时,将使用层次结构的 Property Container。Property Container 模式将定义为获得特定的会计代码特性而遍历容器层次结构(containment hierarchy)时的行为。 实现Property Container 我们的 Property Container 实现很简单。要开始的话,请查看下面的 Property Container 代码: public abstract class PropertyContainerImpl implements PropertyContainer, Serializable {
文档评论(0)