首页 > 代码库 > AOP 实现
AOP 实现
软件中 与业务无关的公共模块如日志系统,权限验证 等等会大量的存在于系统方法里。AOP 目的是分离这部分公共模块与业务逻辑之间的关系。
先定义业务接口:
public interface IVehInfo { int GetVehicleCount(); } public class Car : IVehInfo { public int GetVehicleCount() { Console.Write("Log Begian");//记录日志 var i = 100; Console.Write("Log End"); return i; } }
如何避免出现这种公共模块行为污染业务行为的方式。
1.使用代理类
public interface IVehInfo { int GetVehicleCount(); } public class Car : IVehInfo { public int GetVehicleCount() { return 100; } } public class CarProxy : IVehInfo { private readonly Car nCarc; public CarProxy(Car oCar) { this.nCarc = oCar; } public int GetVehicleCount() { Console.Write("Log Begian");//记录日志 var ct= nCarc.GetVehicleCount(); Console.Write("Log End"); return ct; } }
这样做坏处是需要写大量的代理类,导致对象大爆炸。
2.使用反射发出动态构建代理类
AOP 实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。