CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > Java技术

使用Java Annotations来管理对象生命周期

作者: 佚名,  出处:IT专家网论坛, 责任编辑: 包春林, 
2008-06-19 04:00
  Java Annotations主要用来标注deprecated的代码。在这篇文章中,它们用来把方法调用的控制权移交给一个轻量级框架中负责处理一系列方法调用的组件。因此,正确的初始化和设置等操作被委派给客户端应用而不是类,以做到设置和控制都可以调整。

  对于开发者来说,复杂的应用通常有很多初始化问题需要处理。许多不同的步骤无非是建立面板,配置服务之类。而这些事情的难点在于,有一些步骤需要重复,另一些则不需要。把这种管理问题交给类自己处理是非常麻烦的,因为逻辑可能会变化。另外,现代软件设计强调分离职责。简单来说,我们的目的是把做什么和怎么做分离开来。

  Annotations

  Annotations是J2SE 5.0引入的新语言特性。通常, Annotations允许开发者用一种跟运行代码无关的次要信息来标注类,方法以及成员。这样就可以使用类似评价的 Annotations,比如“好方法”、“坏方法”,或者更详细一些,“不推荐的方法”、“覆写的方法”。这些用法的可能性是无穷的。不过请注意,方法或类跟标注实际可能不相关,比如“不推荐的”。如果想知道关于 Annotations的更多详细讨论,请阅读Java 5.0 Tiger: A Developer's Notebook。

  因为 Annotations可以用来描述用例或者实体比如方法和类的意思,所以这是一种语法棒棒糖。反过来,这些附加信息也可以被其他东西(比如框架)用于各种各样的动作,比如生成文档(Javadoc),或者像这里讨论的,作为一种特殊内容来控制行为,比如对象的生命周期。

  生命周期管理

  生命周期管理通常发生在中间件环境中,比如应用服务器。这种思想是把对象的创建、使用以及销毁跟对象本身分开。例如在一个发布不同服务的应用服务器中,它通常不关心所请求的特殊服务(译注:此处的意思应该是应用服务器对所有请求都一视同仁),调用服务的机制或多或少的采用了同一种方案。这取决于应用的状态,呼叫者以及其他参数,一些必要的变量,但是在一个易于管理的环境中,基本的算法通常是一系列操作的顺序链。在Java客户端应用中,必须处理mask的显示,或者form允许用户输入或修改数据。

  示例问题

  在Java应用中,mask通常用于数据收集以及在CRUD(create, read, update, delete)周期中处理数据。用户可以修改、删除或者新增加一些数据。跟一个简单的商务问题一样,我们需要管理在客户端应用中如何显示mask。这样,我们把显示从操作链中分离了出来,像下面这样:

  1.创建:mask在这一状态中最好只安排一次。

  2.初始化:在这一状态,数据从文件和数据库等地方找回,并填充到mask的字段中。

  3.激活:这里,用户放弃对mask的控制。

  在现实中,涉及到很多方面:访问、验证、控制依赖等等。

  Phases

  在这篇讨论中,我提到了每一步操作的phase,基本思想非常简单:我们把类方法标注成操作链中的phases,然后把这些方法的调用交给服务(框架)来做。实际上,这种方法并不仅限于生命周期管理。它可以用做商务流程中所有调用的控制机制。

  我们使用的 Annotations简单的命名为Phase,我们使用它来把一个方法标注成操作链的一部分。在下面的代码里,你可以看到 Annotations的声明与接口很接近。

  @Retention(RetentionPolicy.RUNTIME)

  @Target({ElementType.METHOD})

  public @interface Phase {

  int index();

  String displayName() default "";}

共3页。 1 2 3 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i