首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有相似功能的两个视图控制器

具有相似功能的两个视图控制器
EN

Stack Overflow用户
提问于 2016-06-06 19:53:27
回答 3查看 724关注 0票数 3

我目前正在尝试在我的项目中实现VIPER-architecture,我遇到了一些问题。

我的应用程序中有两个模块,它们有一些相似的功能(它们都有imagePicker和上传媒体到服务器的能力,在两个屏幕上实现完全相同)。

我的问题是,我如何在两个模块中重用这种相似的功能?问题是,我的imagePicker在Interactor中声明了许多方法,它们在选择和上传图像时处理不同的事件(例如didUploadMediaFile()、didFailToUploadMediaFile()、uploadMediaFile()等)。

我是否应该创建具有此功能的第三个模块,然后以某种方式从它继承其他模块?或者也许有更好的方法呢?

EN

回答 3

Stack Overflow用户

发布于 2017-04-11 10:05:52

我使用的唯一类似的组件/方法是Data Managers,它可以在您想要的任意多个Interactor之间共享,并且100%符合VIPER架构。

因此,调用MediaApiDataManager()的DataManager将负责将核心代码实现为UploadMediaFile()

我建议你阅读这篇文章,以获得更多关于毒蛇的好技巧:https://www.ckl.io/blog/best-practices-viper-architecture/

票数 1
EN

Stack Overflow用户

发布于 2016-06-06 20:08:14

我认为您需要创建抽象类并在imagePicker逻辑中实现。使用didUploadMediaFile()、didFailToUploadMediaFile()、uploadMediaFile()方法为其类声明接口(协议),在类中实现此方法并注入到您的VIPER模块中

票数 0
EN

Stack Overflow用户

发布于 2020-08-01 04:14:41

对于这两个模块,尝试抽象出相似性,并尝试构建一个类。如果两个类使用泛型的数据类型不同,您也可以使用协议,因此在一个协议中声明两个模块的公共方法,并将每个模块实现为扩展。也许这篇教程会有所帮助。https://medium.com/@richiemon/protocol-extension-dispatching-6d5229f1338e

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

https://stackoverflow.com/questions/37656759

复制
相关文章

相似问题

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