|
對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的簡單實現,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。