正在加载图片...
466Asp;海编程 Chinapub coM 下载 定义无状态( stateless)编程模型这个概念,简单而言,无状态编程模型对于开发人员有两方面 含义 个客户不能依靠同一个对象实例处理每一个方法的调用(对于同一个对象)。因为无法 确定方法调用之间的一个对象的状态。 一个对象不能依赖于同一个客户调用其提供的每一个方法,如果对象被缓冲,许多客户 将重复使用同一对象 这两点实际上十分简单,但对创建组件和客户的方式有很大影响,面向对象编程(OOP)对 JⅠT组件来说,不能正常工作。面向对象技术的基础是对象有同一性、行为以及一段时间的状 态。恰好是最后一点不满足要求,因此如下代码不能正常工作: Dim objPerson As Richard Set objPerson New Richard bjPerson, Name ="Richard bjPerson DOB 1972 objPerson. Title ="Developer objPerson. UpdateDetails 这是一个非常典型的OOP,我们先设置对象的属性,然后要求对象通过一些存储媒介保 存变化情况。你能看出问题吗?是的,每次属性的存取和方法的调用将引起COM+的运行期 创建或取消COM对象,从代码中看不出这个过程,因为创建和取消发生在COM+运行期内, 在我们调用 Update Details方法时使用的对象实例,可能不是设置属性时使用的那个。对象存 储什么内容呢?存储的可能是在组件 Class Initialize例程中初始化的缺省值。 作为传统的OOP不会使用COM+JT配置的组件。我们必须回过头来考虑其他的使用组件 和客户的方式。不使用JIT的组件可使用OOP技术进行编程,但对于JIT组件必须把代码改变 为“面向过程”。简单说,这意味着客户要把处理一个请求所需的所有状态传给对象(在每次 方法调用中) (1)面向过程的对象 对于上面的代码,我们重写为 Dim ob]Person As Richard Set objPerson New Richard bi Person. UpdateDetails Richard,, 1972, Developer 我们现已知道依赖于方法调用间的状态不是一个可行办法,所以将所有需要的状态作为 参数传给完成 Update Details的过程 在ASP中,对于无状态组件有两个地方需要注意: ·避免存储任何信息在组件的局部变量中 避免页面-页面之间保持组件的引用 最简单的避免客户将信息存储在对象内的方法是,只提供组件的基于方法的接口,组件 应没有公共属性,所有与组件的交互都通过方法调用完成,所有的组件所需的工作信息,均 作为参数传递给方法调用 (2)对象状态可重复使用定义无状态( s t a t e l e s s )编程模型这个概念,简单而言,无状态编程模型对于开发人员有两方面 含义: • 一个客户不能依靠同一个对象实例处理每一个方法的调用 (对于同一个对象 )。因为无法 确定方法调用之间的一个对象的状态。 • 一个对象不能依赖于同一个客户调用其提供的每一个方法,如果对象被缓冲,许多客户 将重复使用同一对象。 这两点实际上十分简单,但对创建组件和客户的方式有很大影响,面向对象编程 ( O O P )对 J I T组件来说,不能正常工作。面向对象技术的基础是对象有同一性、行为以及一段时间的状 态。恰好是最后一点不满足要求,因此如下代码不能正常工作: 这是一个非常典型的 O O P,我们先设置对象的属性,然后要求对象通过一些存储媒介保 存变化情况。你能看出问题吗?是的,每次属性的存取和方法的调用将引起 C O M +的运行期 创建或取消 C O M对象,从代码中看不出这个过程,因为创建和取消发生在 C O M +运行期内, 在我们调用U p d a t e D e t a i l s方法时使用的对象实例,可能不是设置属性时使用的那个。对象存 储什么内容呢?存储的可能是在组件 C l a s s _ I n i t i a l i z e例程中初始化的缺省值。 作为传统的O O P不会使用COM+ JIT配置的组件。我们必须回过头来考虑其他的使用组件 和客户的方式。不使用 J I T的组件可使用 O O P技术进行编程,但对于 J I T组件必须把代码改变 为“面向过程”。简单说,这意味着客户要把处理一个请求所需的所有状态传给对象 (在每次 方法调用中)。 (1) 面向过程的对象 对于上面的代码,我们重写为: 我们现已知道依赖于方法调用间的状态不是一个可行办法,所以将所有需要的状态作为 参数传给完成U p d a t e D e t a i l s的过程。 在A S P中,对于无状态组件有两个地方需要注意: • 避免存储任何信息在组件的局部变量中。 • 避免页面-页面之间保持组件的引用 最简单的避免客户将信息存储在对象内的方法是,只提供组件的基于方法的接口,组件 应没有公共属性,所有与组件的交互都通过方法调用完成,所有的组件所需的工作信息,均 作为参数传递给方法调用。 (2) 对象状态可重复使用 466计计ASP 3 高级编程 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有