首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在构建过程中只包含所需的SDK (工厂设计模式)

如何在构建过程中只包含所需的SDK (工厂设计模式)
EN

Stack Overflow用户
提问于 2019-09-24 17:01:46
回答 1查看 42关注 0票数 0

在我的android应用程序中,我有一个视频播放器,我将在其中使用第三方SDK。我的目标是使用三个不同的视频播放器SDK。如您所知,这些SDK中的每一个都有自己的属性。通过使用抽象工厂设计模式,我成功地使用不同的SDK进行了统一。所以这些SDK中的每一个都是在一个单独的类中实现的,我确实有一个“视频播放器工厂”来统一这些SDK的接口。

例如,在我的代码中,我有如下内容:

代码语言:javascript
复制
videoPlayer1 = VideoPlayerFactory.getVideoPlayer(new VideoPlayerFromSDK1);
videoPlayer2 = VideoPlayerFactory.getVideoPlayer(new VideoPlayerFromSDK2);

videoPlayer1.unifiedFunction();
videoPlayer2.unifiedFunction();

有了这种抽象的工厂设计模式,我可以想要多少视频播放器SDK就有多少。然而,问题是,在应用程序中包含所有这些SDK是不符合逻辑的。我想做的是建立应用程序只与这些SDK之一(基于客户的需求),该应用程序认识到哪个SDK是包括在内的,视频播放器的实例应该使用。

例如,如果在构建中只包含SDK1,则只创建和使用该SDK的实例。

这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-24 17:14:35

gradle变体a)在你的gradle文件中定义你的应用程序的哪种风格应该包含哪些依赖项。Here也是一个类似的问题。

变体b)使用模块化和dynamic feature delivery。您可以设计您的应用程序的方式,它将不附带或只有一个视频播放器sdk。如果用户需要查看具有特定sdk的视频,则应用程序可以动态下载包含该sdk的模块。(不过,我还没有亲自使用过这个)

Google has an example for their Plaid App.在此应用程序中,您可以阅读来自多个来源的新闻。访问特定新闻站点的逻辑封装在自己的模块中,如果用户实际上想要第一次访问新闻源,则只下载该模块。你可以在github上找到源代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58076669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档