在我的android应用程序中,我有一个视频播放器,我将在其中使用第三方SDK。我的目标是使用三个不同的视频播放器SDK。如您所知,这些SDK中的每一个都有自己的属性。通过使用抽象工厂设计模式,我成功地使用不同的SDK进行了统一。所以这些SDK中的每一个都是在一个单独的类中实现的,我确实有一个“视频播放器工厂”来统一这些SDK的接口。
例如,在我的代码中,我有如下内容:
videoPlayer1 = VideoPlayerFactory.getVideoPlayer(new VideoPlayerFromSDK1);
videoPlayer2 = VideoPlayerFactory.getVideoPlayer(new VideoPlayerFromSDK2);
videoPlayer1.unifiedFunction();
videoPlayer2.unifiedFunction();有了这种抽象的工厂设计模式,我可以想要多少视频播放器SDK就有多少。然而,问题是,在应用程序中包含所有这些SDK是不符合逻辑的。我想做的是建立应用程序只与这些SDK之一(基于客户的需求),该应用程序认识到哪个SDK是包括在内的,视频播放器的实例应该使用。
例如,如果在构建中只包含SDK1,则只创建和使用该SDK的实例。
这有可能吗?
发布于 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上找到源代码。
https://stackoverflow.com/questions/58076669
复制相似问题