【问题标题】:I want to add mutiple API's and create a single API我想添加多个 API 并创建一个 API
【发布时间】:2015-12-30 06:38:42
【问题描述】:

大家好,我是 Unity 开发的新手,我想添加 3 个 SDK 以集成到 UNITY

  1. 脸书 SDK

  2. 国家

  3. 调整

并想制作一个单独的 SDK,以便将来可以使用 知道怎么做吗?

【问题讨论】:

  • “大家好,我是开发新手”——也许可以尝试一些不那么雄心勃勃的事情——“你好,世界!”是通常的起点
  • 有时你必须先跑才能走路
  • 有时你必须了解自己的局限性......
  • 感谢您的宝贵时间,先生
  • 我能想到的最能帮助您解决问题的方法是实施“封装”原则。我会开始看那里。

标签: api unity3d sdk facebook-unity-sdk


【解决方案1】:

我不确切知道您想从这些模块中使用什么功能,但如果它们几乎都做相同的事情,您可能会定义一个通用接口并拥有 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,然后管理它们。

如果人们告诉你要降低目标,那就直接忽略它们。志存高远,了解实现目标所需的条件。

【讨论】:

  • 非常感谢你为我提供了一个目标,我现在已经到了我必须去的地方......非常感谢
猜你喜欢
  • 2018-02-22
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多