通过代码实例跟我学面向方面编程从入门到精通——spring框架aoparound类型通知的应用技术及实现示例内容摘要:
(, 转帐成功结束 ....)。 } } } ( 3)再 修改原来的业务功能类 package。 import。 import。 public class AccountInfoManageImplement extends TransactionLog implements AccountInfoManageInterface { public AccountInfoManageImplement() { } public boolean doDeposit(String targetAccount, float menory) { (true)。 (正在取钱过程中 ...)。 //代 表业务实现 (false)。 return true。 } public boolean doTransferAccount(String sourceAccount, String targetAccount, float menory) { 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 8/17 页 (true)。 (正在转帐过程中 ...)。 //代表业务实现 (false)。 return true。 } } 但此方法仍然存在问题 —— 与前面的方法基本是一样的。 ( 4)方法一是采用静态代理技术 所谓的静态代理类是由 开发者编程 创建或由特定工具自动生成源代码, 然后 再对其编译。 在程序运行前, 该 代理类的 .class 文件就已经存在了。 采用静态代理技术时, 开发者可以以下面的两种方式来具体实现。 1) 针对每个具体类分别编写代理类; 2) 针对一个接口编写一个代理类; ( 5)方法二是采用动态代理技术 所谓的动态代理类 是指 在程序运行时,运用反射机制动态创建 出。 但该 动 态代理类 需要实现 InvocationHandler 接口 ,然后借用 JDK 反射包中的 Proxy 类为各种接口动态生成相应的代理类。 动态代理为实现许多常见设计模式(包括 Facade、 Bridge、 Interceptor、 Decorator、Proxy(包括远程和虚拟代理)和 Adapter 模式)提供了替代的动态机制。 虽然这些模式不使用动态代理,只用普通的类就能够实现,但是在许多情况下,动态代理方式更方便、更紧凑,可以清除许多手写或生成的类。 ( 6)方法三是采用 Spring 框架中的 AOP 技术,但使用 Around 类型的 Advice 来具体实现。 采用静态代理技术 的具体实现示例 ( 1)定义我们的业务组件的接口 package。 public interface AccountInfoManageInterface { public boolean doTransferAccount (String sourceAccount, String targetAccount, float menory)。 public boolean doDeposit(String targetAccount, float menory)。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/17 页 } ( 2)为该 业务组件 接口提供一个 具体的 实现类 package。 import。 public class AccountInfoManageImplement implements AccountInfoManageInterface { public AccountInfoManageImplement() { } @Override public boolean doDeposit(String targetAccount, float menory) { (正在取钱过程中 ...)。 //代表业务实现 return true。 } @Override public boolean doTransferAccount(String sourceAccount, String targetAccount, float menory) { (正在转帐过程中 ...)。 //代表业务实现 return true。 } } 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/17 页 在该业务组件类中,具体只实现我们的业务功能,但并不完成 log 功能的实现。 ( 3)为该实现类提供一个代理类 根据代理模式的实现规则, 我们在该代理类中实现我们的日志功能 (横切关注点 的功能 ) ,同时也对原来的方法(被代理类中的方法)进行调用。 代理主 要包括代理对象和被代理对象 ,它们要实现相同的接口。 用代理方法 ,我们可以很把业务处理放在 被代理对象 类 的 方法中 ,而把 一些与业务无关事情放在 代理对象 类 的 方法中。 ( 4) AccountInfoManageImplementProxy 代理类的代码示。通过代码实例跟我学面向方面编程从入门到精通——spring框架aoparound类型通知的应用技术及实现示例
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。