代码之家  ›  专栏  ›  技术社区  ›  Charles Graham

什么是面向方面编程?[副本]

aop
  •  14
  • Charles Graham  · 技术社区  · 17 年前

    重复:

    What is aspect-oriented programming?

    5 回复  |  直到 6 年前
        1
  •  32
  •   JoshBerke    17 年前

    好的,面向方面的说法是废话,让我在你的方法周围注入我的方法,例如,系统可能会调用,

    LoggingHandler.CallMethod()此方法可能会将调用重定向到UpdateModel,但会将其包装在try-catch块中以处理日志错误。

    现在的诀窍是,这种重定向是自动发生的,通过配置或将属性应用于方法。

    正如您所说,这适用于横切的东西,这些东西是存在于每个领域中的非常常见的编程元素,例如:日志记录、审计、事务管理、授权。

        2
  •  10
  •   tvanfosson    17 年前

    NET中的类和方法属性是面向方面编程的一种形式。您可以用属性装饰类/方法。在幕后,这会将代码添加到执行属性的特定函数的类/方法中。例如,将一个类标记为可序列化可以使其自动序列化,以便存储或传输到另一个系统。其他属性可能会将某些属性标记为不可序列化,这些属性将自动从序列化对象中忽略。序列化是一个方面,由系统中的其他代码实现,并通过应用“配置”属性(装饰)应用于类。

        3
  •  2
  •   Nrj    17 年前

    AOP是关于管理应用程序中的公共功能(跨应用程序,因此是横切的),这样它就不会嵌入到业务逻辑中。

    此类交叉关注点的示例包括日志记录、安全管理、事务管理等。

        4
  •  1
  •   Rohan West    17 年前

    Post Sharp ,我会阅读他们网站上的信息。我使用它来提供方法调用的安全性。

    “PostSharp是一个用于分析和转换.NET程序集的开放平台。它与PostSharp老挝一起提供,这是一个功能强大但简单的插件,可让您开发自定义属性,从而实际添加代码行为。PostSharp老挝是.NET Framework的领先面向方面编程(AOP)解决方案。”

        5
  •  1
  •   Einstein Einstein    17 年前

    根据我的经验,如果您认为您需要AOP,您实际上需要投入更多的时间和精力在系统内进行适当的元数据管理,重点是经过深思熟虑的结构/系统设计。