当前位置:  开发笔记 > 编程语言 > 正文

什么是面向方面编程?

如何解决《什么是面向方面编程?》经验,为你挑选了2个好方法。

Laymans术语让我举个例子.假设您有一个Web应用程序,并且需要添加错误日志记录/审核.一个实现是进入每个公共方法并添加try catch块等...

面向Aspect的方面说hogwash,让我在你的方法周围注入我的方法,例如,而不是调用YourClass.UpdateModel(),系统可能调用,

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

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

这适用于您所说的交叉切割事物,这是每个域中存在的非常常见的编程元素,例如:日志记录,审计,事务管理,授权.

它背后的想法是从您的业务/应用程序层中删除所有这些常见的管道代码,以便您可以专注于解决问题,而不必担心记录此方法调用或该方法调用.



1> JoshBerke..:

Laymans术语让我举个例子.假设您有一个Web应用程序,并且需要添加错误日志记录/审核.一个实现是进入每个公共方法并添加try catch块等...

面向Aspect的方面说hogwash,让我在你的方法周围注入我的方法,例如,而不是调用YourClass.UpdateModel(),系统可能调用,

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

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

这适用于您所说的交叉切割事物,这是每个域中存在的非常常见的编程元素,例如:日志记录,审计,事务管理,授权.

它背后的想法是从您的业务/应用程序层中删除所有这些常见的管道代码,以便您可以专注于解决问题,而不必担心记录此方法调用或该方法调用.



2> tvanfosson..:

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

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有