摘要: AOP的全称是Aspect-oriented Programming。在网上很多地方都将AOP翻译成“面向方面编程”,我觉得这样的翻译不利于对AOP概念的理解,在中文中,如果“方面”前面没有修饰词,“方面”是一个没有意义的词语。“面向方面编程”,那这个“方面”是什么?我觉得将Aspect翻译成“外表”,也比“方面”容易理解。我想我们使用AOP的目的是在对象的外部(外表)去扩展对象的功能,而尽量避... 阅读全文
posted @ 2004-04-06 21:55 dudu 阅读(4533) 评论(6) 推荐(0) 编辑
摘要: 在本文的上一篇中,我们利用.NET Remoting基础架构中的真实代理/透明代理技术实现了不针对具体类型、具体方法的通用方法调用拦截机制。由于技术内容太多,本来想一同写在上一篇中的最后一大块内容就新作一篇吧。在本篇文字中,我们介绍可以用于在.NET中实现基本AOP(面向方面编程)的更深入的技术,并结合该技术的优势和劣势提出了一个已经在我们设计的项目中应用的一个AOP框架原型思路。 在前一篇... 阅读全文
posted @ 2004-04-06 18:10 dudu 阅读(2755) 评论(3) 推荐(0) 编辑
摘要: 继续文章的第一部分,我们在这一篇文字中将从另一个角度考虑原文中提出的问题,并深入探索.NET/CLR中提供的相关技术机制,最终以一种AOP的形式达成同样的结果。为了让你能够尽快进入状态,我们先简要回顾一下前文中已经探讨的内容: 在文章的第一部分,我们从一个非常简单的虚构的业务操作类(Calculator)开始,结合企业开发中经常会面临的种种非功能性需求(操作日志、权限控制、性能监测等等),用面... 阅读全文
posted @ 2004-04-06 18:07 dudu 阅读(1923) 评论(0) 推荐(0) 编辑
摘要: 在展开问题之前我们首先设定一个例子,在这个示例中我将使用尽可能简单的逻辑实现所有功能需求,这将更突出我们所要解决的核心问题。例子是一个简单计算器类: public class Calculator{ public int Add(int x, int y) { return x + y; }} 测试代码如下(你可以使用NUnit与我们一起完成对这个例子的研究): public voi... 阅读全文
posted @ 2004-04-06 18:03 dudu 阅读(2601) 评论(2) 推荐(0) 编辑