Aspect Oriented Programming(AOP) 介绍

什么是AOP?
:) = Aspect Oriented Programming

Business Rule             | (AOP)
Security Permission     |
Logging                     | --------------> Business Logic
Database Operations   |
Web Service               |

为什么AOP?
为了独立业务
怎样AOP?
举个例子
按照传统的写法写登陆业务

 

 1/* Traditional Way */
 2bool isAdministrator = false;
 3if(Users.ValidateUser(Context.User.UserName) == UserRole.Admministrator)
 4{
 5            isAdministrator = true;
 6}

 7if(!isAdministrator) throw new NoPermissionExpection();
 8// Bussiness Code
 9/* -----------------------------------------------------------------
10*   Aspect Oriented Programming
11*   AOP指的是用面向方面的编程来解决面向方面的问题
12*   一般包含: 1.切入点 2.方面问题的解决
13*   在实现中一般加入了动态代理的成分反倒复杂了许多,包含了五个方面
14*   1. 连接点 2. 接入点 3. 通知 4.方面 5. 引入
15------------------------------------------------------------------*/

16if(!Memebership.User.HasPermission) throw new NoPermissionExpection();

关于动态代理的部分
例如:

[Before(Memebership.User.HasPermission)]
public void ExecuteLogic()
{
        
// TODO:: Implement the business logic
}

public class ExecuteEngine
{
          
public void Run()
          
{
                  
// TODO:: Get the attribute to find out if there is a before attribute。
                  
//        If there is, Run the Arrtibute Method First,  then run the ExecuteLogic
          }

}

框架
Spring, Aspect# 等等

关于AOP更多描述:

http://www.jdon.com/AOPdesign/jdon-aop.htm
http://wayfarer.cnblogs.com/articles/241024.html

posted on 2008-05-31 23:47  xwang  阅读(481)  评论(0编辑  收藏  举报

导航