如何管理依赖于网络调用和数据库查询的框架?

问题描述 投票:0回答:1

我有一个项目需要实现一个可能与许多其他项目共享的框架,这个框架是关于“订阅”的。

基本上这个人做的是在iOS中包装StoreKit并与我们的服务器对话,然后可能在数据库中保存一些东西。我在项目中有一个数据库堆栈和网络堆栈,但我还没有将它们抽象到框架/库中。

所以我的问题是,我不太确定实现这一目标的正确方法。我应该首先将我的数据库堆栈和网络堆栈作为2个独立的框架吗?然后通过将它们包含在内来创建“订阅”框架?但我也发现这被称为umbrella framework,不推荐。

有什么建议?

ios cocoa frameworks
1个回答
1
投票

在我看来,有两种方法来设计它。

选项A /懒惰

将所有可重用的类构建到单个框架中。该框架将包括/编译它需要的所有支持代码(数据库,网络,......)来完成它的工作。

然后在您的各种应用程序项目中共享该可重用框架。请记住,不仅要链接到框架,还要将其嵌入到您的应用中。

这是最简单的设置,设计和维护(针对单个人)。然而,这也意味着创建一个可能过于宽泛和/或隐藏太多底层技术的单片库。

选项B /热情

将每个可重用组件构建到自己的框架中。高级框架将链接到(但不嵌入)低级框架。

然后,您的应用程序项目将链接并嵌入所需的所有框架。

在运行时,每个框架将(应该)根据需要神奇地加载自身。

这是一项更多的工作,但有一些优点。每个主要服务都有自己的I / F,因此您的应用程序可以直接使用组件,而无需“钻取”定义您的自定义服务的高级框架。

它也可能意味着您在包含的代码中具有更大的灵活性。一个应用程序可能使用客户端注册服务,数据库和服务器连接,而第二个应用程序可能只使用客户端锁定和服务器。

它也可能使维护(特别是如果不同的工程师负责每项服务)和回归测试更容易。

最后,这里没有正确的答案,只是权衡。

© www.soinside.com 2019 - 2024. All rights reserved.