2015-12-30 23 views
-1

嗨,你們新來的團結發展,我想補充3個SDK來團結整合我要添加多發的API,並創建一個單一的API

  1. FACEBOOK SDK

  2. Countly

  3. 調整

,並想使一個SDK,以便它可以爲u sed在未來 任何想法如何做到這一點?

+0

「Hi guys m new to development」 - 也許嘗試一些不那麼雄心勃勃 - 'hello world!'是平常的出發地 –

+0

有些時候你必須跑步才能走路 –

+0

有時你必須瞭解你的侷限性。 .. –

回答

0

我不確切地知道你想從這些模塊中使用哪些功能,但是如果他們幾乎都做同樣的事情,你可以定義一個通用接口並且有3個適配器使你的模塊適合這個接口。

interface ITrackingSdk 
{ 
    void StartSession(string[] identifiers); 
    ... 
} 

class FacebookTrackingSdk : ITrackingSdk 
{ 
    private YourFacebookModule facebook; 

    public static bool IsSupported { get { return true; } } 

    public void StartSession(string[] identifiers) 
    { 
     facebook.InitializeBla(...); 
    } 
    ... 
} 

class CountlyTrackingSdk : ITrackingSdk { ... } 
class AdjustTrackingSdk : ITrackingSdk { ... } 

然後,您有一個工廠可以創建ITrackingSdk實施的實例,具體取決於您當前平臺上的支持。

class TrackingSdkFactory 
{ 
    public ICollection<ITrackingSdk> CreateSupportedTrackingSdks() 
    { 
     List<ITrackingSdk> sdks = new List... 

     if (FacebookTrackingSdk.IsSupported) 
      sdks.Add(new FacebookTrackingSdk()); 

     if (CountlyTrackingSdk.IsSupported) 
      sdks.Add(new CountlyTrackingSdk()); 

     if (AdjustTrackingSdk.IsSupported) 
      sdks.Add(new AdjustTrackingSdk()); 

     return sdks; 
    } 
} 

最後,你可能有某種控制器,上開始要求工廠提供支持的所有跟蹤的SDK,然後對其進行管理。

而且如果人們告訴你堅持自己的目標更低,就簡單地忽略它們。瞄準高和學習你需要到達那裏。

+0

非常感謝你爲我提供了一個目標,我現在有點我必須去... thanx很多 –

相關問題