主页 > 软件开发公司 >

安卓手机应用开发软件公司Aspectj

  安卓手机应用开发软件公司Aspectj的上下文匹配切人点设计器是this, target和args。表达式this (String)匹配任何这样的联结点,即在联结点处当前的执行对象是一个String的实例。表达式target(Foo)匹配任何联结点,那里的目标对象(例如调用)是Fo。的一个实例。参见图6-1的顺序图.由“clear house”对象的withdra*调用“account I”对象,"clear house',对象被绑定到this,  "account 1”对象被绑定到tar-get。

  Aspectj的指定范围的切人点包括within, withincode, cflow和cflowbelow, within切人点匹配的任何联结点,其中相关的源代码被定义在指定的范围内(如类型或包)。withincode切人点匹配的联结点,其中的源代码在指定的方法或构造器集合中定义。安卓手机应用开发软件公司Aspectj cflo,和cflowbelow切人点匹配基于它们所产生的控制流的联结点。例如,切入点表达式cflow (execution (*工BankAccount.*(二)”匹配的联结点,是作为由IBankAccount接口定义的方法的执行结果,包括在方法调用图中的所有联结点, withdraw的调用和执行以及deposit方法都在transfer方法执行的控制流之中。下面的cflow和cflowbelo,把另一个切人点表达式作为它们的参数。它们的不同在于 cflow也匹配由其切人点表达式匹配的联结点,cflowbelow执行那些联结点。

  Aspectj提供了最后的原始切人点if,它接收一个布尔表达式作为其参数.if切人点可以用来扩展Aspectj的联结点匹配.一种通常的用法是测试布尔标志,就像在表达式if(enabled)中一样。

  Aspectj语言的一个重要部分是切人点支持抽象和组合。安卓手机应用开发软件公司Aspectj抽象是通过pointcut关键字来支持的,该关键字允许程序员定义一个命名切人点。组合是通过使用“川和!操作符,组合名字和元语切人点来实现的。清单6-1通过一个简单的例子显示了切入点和组合所产生的强大功能:表达式可以轻松地建立,illegalJDBCCall切入点可以自然地读取。

  

  • 1
  • 2
  • 3