1. 程式人生 > >IOC-->IOC+AOP-->熱插拔的系統架構實現演化

IOC-->IOC+AOP-->熱插拔的系統架構實現演化

   這段時間通過對Spring原始碼的研究,大家都清楚Spring中最重要的兩個概念IOC、AOP這兩個是形影不離的兩個東西。通過Spring讓我們一步一步的推出軟體架構從IOC-->IOC+AOP-->熱插拔系統架構演化。

第一步:

   我們一開始兩個物件直接呼叫的時候是用直接呼叫的方式呼叫如下圖


   這種的呼叫方式如果兩個物件只要有一個物件更改就要改變所以這樣的呼叫方式不夠靈活。如何解決這個問題呢?接下來下一步介紹。

第二步:

   上面說了我們把兩個物件綁死了現在我們就要打破這個“死”關係,如何改變這個狀態了加入第三方讓第三方來實現兩個物件直接的呼叫管理。如下圖:


   這樣一來我們就可以把各個物件直接不用綁死了加入了第三方的東西來實現兩個物件直接的呼叫。現在解決了物件與物件直接呼叫的耦合。但是當物件一多了我們在物件中有一些公共的方法這時候我麼會將怎麼做了?沒錯將這些公共的抽出來然後將這些公共的方法放到一個公共物件中。例如每個物件都用到日誌這個方法插入到每一個物件的方法中。下面我就為大家介紹如何做到這個的。

第三步

   上一步給大家講了我這一步將要吧公共的方法或者物件抽出來然後再動態的加入到業務物件中。如下圖:


   對沒錯就是用AOP來實現了動態的給業務顆粒物件加入公共顆粒物件。為了讓這個更靈活我們下一步就加入XML配置檔案。

第四步

   上一步讓業務顆粒在程式碼上靈活了現在為了讓靈活更加完善我們就加入XML來讀取物件把這些物件放入到不同的兩個物件顆粒池中如圖:


第五步

   完善XML的讀取和例項化物件實現熱插拔。如下圖:


總結:

   從一開始一個物件到大規模業務顆粒和公共顆粒的解耦造就了軟體的靈活,如果再加上視覺化的配置介面我們就可以讓軟體的開發成本降為0元。只要有個專案過來我們配一配我們就可以弄出一個軟體來。

轉載請註明來源:http://blog.csdn.net/gwblue/article/details/45967793