mar*_*l g 5 aop dependency-injection
假设我想在AOP方法中使用依赖注入框架,目标是生成代码模块.共享接口所有权的最佳实践是什么?所有权我指的是为了使用接口而需要引用的代码体.
我的第一个猜测是,在AOP中,您将定义一个接口的类库,按方面命名.例如:company.aspect.logging.ILogger.然后,每个模块将引用此库,并避免在ILogger的实现中涉及任何代码也定义ILogger.
最佳做法?
定义接口类库是一个好的开始。这为您提供了最大的灵活性,因为您可以完全独立地改变所有消费者和所有实施者。
这种方法的缺点是,如果您的接口本身导出其他接口,如下所示:
public interface IMyInterface
{
IMyOtherInterface DoStuff();
}
Run Code Online (Sandbox Code Playgroud)
您可能需要编写大量映射代码来从接口填充具体类(或者您可以使用AutoMapper)。
如果您只有一个使用者但有多个实现者,您可以通过与使用者一起定义接口(而不是与实现者)来节省一些映射,但您会失去一些灵活性。但是,您仍然可以独立于消费者改变实现者,但反之则不然。
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |