php设计模式介绍之规范模式
public(公开)属性 。这并不是很糟糕的。事实上,在过去使用规范模式的过程中,我发现不少规范得益于我对特有参数对 象的详细了解。然而,这种紧密的联系对规范的重用带来了很大的麻烦。
幸运的是,各种不同的 规范模式已经开始着手从事代码重用问题的研究。特别值得提出的是,参数化规范模式通过构造器 (constructor)来接收参数,这个参数主要用于确定isSatisfiedBy()函数的进化标准。 现在让 我们看看这个参数化规范,它使用了相同旅行站点的对象。假定你要搜索出一个目的地的列表,并且列 表显示出满足“足够温暖”标准的城市。 使用原来的Trip Required Temperature Specification,你不得不为每个评估创建一个Trip对象。这是因为(在这个明确的问题上)旅行者 (Traveler)和旅行日期(Date)是不变的,仅仅只有目的地因为你不断的重述可行目的地列表而不断 变化。 使用参数化规范,你记住了旅行者首选的温度和旅行日期,并且你只要通过传递一个变量 到方法isSatisfiedBy()就可以比较目的地。 参数化规范对象Destination Required Temperature Specification的构造函数需要一个旅行者(Traveler)和一个日期(Date)来实例化这个 规范。
由于存储在实例化变量中的数据(温度和日期)的一致性, Destination Required Temperature Specification的方法isSatisfiedBy()把目的地(Destination) 做为一个输入参数来评估。
现 在你可以写一个测试实例来过滤目的地列表。
通过上面的例子,你可以看到参数化规范能给你带来更多额外的自由和灵活性。 现在让我们看看另外一个例 子,在这个例子里面数据类型和规范都必须是非常的灵活易变的。 在Web应用程序中,最常用也 最让人发狂的一个问题就是确认表单输入(对表单输入数据的验证)。在软件开发过程中(甚至在开发 过程外),表单是经常改变得,而且在大型的或者功能丰富的应用程序里面,表单的数量能够很快的增 长。你可以创建一个唯一的对象来封装每一个表单,然后使用规范模式来确认每一个对象,但这绝对是 一个持续的恶梦。 有没有一个方便的数据类型能够很容易的适应任何一个表单吗?如果有,那么 有没有一个能够确认动态数据类型的方式呢? 上面每一个问题的答案显然是肯定的。 WEB 应用程序组件工具箱(简称WACT)的数据源(DataSource)接口能够get(获取),set(设置 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |