|
對(duì)EnterLib有所了解的人應(yīng)該知道,其中有一個(gè)名叫Policy Injection的AOP框架;而整個(gè)EnterLib完全建立在另一個(gè)叫作Unity的底層框架之上,我們可以將Unity看成是一個(gè)IoC的框架。對(duì)于一個(gè)企業(yè)應(yīng)用來(lái)說(shuō)說(shuō),AOP和IoC是我們進(jìn)行邏輯分離和降低耦合度最主要的方式,而將兩者結(jié)合起來(lái)具有重要的現(xiàn)實(shí)意義。
一、基于IoC+AOP的編程
到底將IoC和AOP進(jìn)行整合后,會(huì)對(duì)編程但來(lái)怎樣的影響,我寫(xiě)了一個(gè)簡(jiǎn)單的例子(你可以從這里下載該實(shí)例)。假設(shè)我現(xiàn)在有兩個(gè)模塊,分別稱為Foo和Bar,通過(guò)如下同名的類(lèi)來(lái)表示。Foo和Bar具有各自的接口,分別為IFoo和IBar。簡(jiǎn)單起見(jiàn),我在兩個(gè)接口中定義了相同的方法:DoSomething。在Foo中,具有一個(gè)類(lèi)型為IBar的只讀屬性,而DoSomething的實(shí)現(xiàn)就是通過(guò)調(diào)用該屬性的同名方法實(shí)現(xiàn)。
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技術(shù):IoC+AOP的簡(jiǎn)單實(shí)現(xiàn),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。