C#---AOP面向切面编程应用

目录

1.基本概念

2.AOP的实现方式

2.1 基于Attribute特性给实体类的属性验证

 2.2基于装饰器设计模式为核心业务切入方法

 2.3基于远程代理实现订单业务扩展

 2.4基于Castle动态代理完成对象扩展

 2.5Unity容器的使用


1.基本概念

AOP(Aspect Oriented Programming)是一种能够在现有面向对象封装的基础上,为了满足软件业务扩展的需求,实现程序动态扩展的一种方式。

场景:适合软件的二次开发应用,动态扩展某些业务,但是尽量的让这些改动最小。

个人理解:给现有业务方法拓展功能,而对原来封装没有破坏.

2二.AOP的实现方式

2.1 基于Attribute特性给实体类的属性验证

 

 这一步就是获取注入的特性,并调用特性中的验证方法,对属性值进行验证.

 

 2.2基于装饰器设计模式为核心业务切入方法

 

 2.3基于远程代理实现订单业务扩展

 第一步:在实现接口类中添加一个父类MarshalByRefObject

 第二步:基于代理远程代理实现对业务扩展

引入命名空间

 第三步:编写拓展方法

 第四步:完成被代理对象的创建

 第五步:使用及结果

 

 2.4基于Castle动态代理完成对象扩展

 第一步:实现接口类必须是Virtual

 第二步:实现一个拦截器接口

第三步:编写切入方法

 

 2.5Unity容器的使用

【1】概念解释:Unity是一个轻量级的可扩展的依赖注入容器。使用方便上,可以选择代码方式,也可以选择xml配置文件进行配置,达到对象关系的依赖。在程序运行中调用Unity容器,就可以获得我们所需要的对象。

【2】应用选择:小型项目可以使用代码方式,相对于大型的项目来讲,可以使用配置文件。

【3】应用场景:主要用于核心模型后续扩展日志功能、认证、授权、缓存等这些通用的业务。

【4】充分理解Ioc和AOP的关系:AOP面向切面编程,是一种编程思想OOP的延伸。通常就是说我们把系统中非核心的业务提取出来,进行单独的处理。主要的事情(核心业务)由我做,次要事情由别人做。在AOP思想的具体实现中,会用到Ioc容器。

第一步:添加Unity容器的引用(需要两个,Unity 5.5.0 和Unity.Interception 5.2.1)

 第二步:编写核心业务接口IOrderService,并实现接口

第三步:添加要注入的具体行为类(就是要实现我们想要扩展的东西),必须实现接口ICallHandler

第四步: 为每一个行为,设计一个特性类,因为行的注入是通过特性完成的。在特性类中返回具体的特性行为。

 

 第五步:为定义的业务接口IOrderService增加需要的特性,并且显示的指明注入的顺序

 注意:当我们给接口增加特性以后,主要是实现这个接口的,这些特性行为都将同时注入进去。

第六步:使用容器

 通过配置文件完成对象的创建

【1】添加接口和各种实现类型

【2】添加两个独立的引用(Microsoft.Practices.Unity.Configuration.dll,Microsoft.Practices.Unity.dll)+ 单独的Configuration配置文件读取的引用

【3】编写配置文件相关节点

【4】使用容器。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值