|
对EnterLib有所了解的人应该知道,其中有一个名叫Policy Injection的AOP框架;而整个EnterLib完全建立在另一个叫作Unity的底层框架之上,我们可以将Unity看成是一个IoC的框架。对于一个企业应用来说说,AOP和IoC是我们进行逻辑分离和降低耦合度最主要的方式,而将两者结合起来具有重要的现实意义。
一、基于IoC+AOP的编程
到底将IoC和AOP进行整合后,会对编程但来怎样的影响,我写了一个简单的例子(你可以从这里下载该实例)。假设我现在有两个模块,分别称为Foo和Bar,通过如下同名的类来表示。Foo和Bar具有各自的接口,分别为IFoo和IBar。简单起见,我在两个接口中定义了相同的方法:DoSomething。在Foo中,具有一个类型为IBar的只读属性,而DoSomething的实现就是通过调用该属性的同名方法实现。
1: public interface IFoo
2: {
3: void DoSomething();
4: }
5:
6: public interface IBar
7: {
8: void DoSomething();
9: }
10: [FooCallHandler]
11: public class Foo : IFoo
12: {
13: public IBar Bar { get; private set; }
14: public Foo(IBar bar)
15: { this.Bar = bar; }
16: public void DoSomething()
17: {
18: this.Bar.DoSomething();
19: }
20: }
21: [BarCallHandler]
22: public class Bar : IBar
23: {
24: public void DoSomething()
25: {
26: Console.WriteLine("Do something...");
27: }
28: }
NET技术:IoC+AOP的简单实现,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。