天天看點

ESFramework介紹之(13)-- 功能插件處理器工廠

    要注意的是,功能伺服器FS上收到的所有消息都應該交給功能插件來處理,不存在其它的處理方式。這是使得FS“純粹”的必須要求。上圖已經很清楚的表示了功能插件處理器工廠的位置和作用。它借助插件管理器實作“工廠”的功能。其實作非常簡單,如下所示:

 1     /// <summary>

 2     /// AddinDealerFactory 功能插件處理器工廠,每一個功能插件能轉換為一個處理器

 3     /// </summary>

 4     public class FunAddinDealerFactory :IDataDealerFactory

 5     {

 6         private IAddinManagement addinManagement ;

 7 

 8         public FunAddinDealerFactory()

 9         {            

10         }

11 

12         #region property

13         public IAddinManagement AddinManagement

14         {

15             set

16             {

17                 this.addinManagement = value ;

18             }

19         }

20         #endregion

21 

22         #region IDataDealerFactory 成員

23         public IDataDealer CreateDealer(int requestType, int serverTypeKey)

24         {

25             foreach(IAddin addin in this.addinManagement.AddinList)

26             {

27                 if((addin.ServiceKey == requestType) && (addin.Enabled))

28                 {

29                     return (IDataDealer)addin ;

30                 }

31             }

32 

33             return null;

34         }

35 

36         #endregion

37     }

    前面已經提到過,每個功能插件都必須是自給自足的,有的可以有自己的配置檔案、有的可能需要通路資料庫或外部的WebService等等。暫時,FS還不支援功能插件之間的依賴――每個插件必須是互相獨立的。

    本文的内容非常簡單,上面的圖示也基本上描述的FS的主體結構。後面我們會關注,AS與FS之間的非功能通信,并說明整個平台是如何實作FS的動态添加/移除的,并解釋如何在網絡不穩定的情況下,保證AS和FS之間的良好通信的機制。感謝關注。