首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Swift 3,将领域排除在应用程序委托之外

Swift 3,将领域排除在应用程序委托之外
EN

Stack Overflow用户
提问于 2017-09-18 09:53:56
回答 1查看 262关注 0票数 1

我在我的应用程序中使用VIPER架构,现在我想使用我的领域数据库。但是,通常我会把它放在AppDelegate中,如果我想在ListInteractor中使用它,我需要import UIKit,这是违反VIPER规则的。

我怎么能很好地解决这个问题?我考虑了以下几种选择:

  • 创建服务
  • 单例解
  • 然而,只要在interactor中使用import RealmSwift,我就会失去轻松的迁移功能。

我确实希望能够尽可能轻松地保持移民,以及其他人的信任。

EN

回答 1

Stack Overflow用户

发布于 2021-04-17 10:45:51

  • 您将完全在Interactor区域内使用领域API (没有UIKit的AppDelegate)。完成一个领域异步操作之后,将转换为您自己的应用域表示,甚至可能是一个(新的?)实体在实体区域。无论如何,VIPER中的所有区域间消息传递都是通过应用程序域结构,而不是领域结构,也不是Apple框架结构。
  • 您将选择一个区域间的效果-框架,这是您指定的应用领域反应方式来表示效果流。在Swift中,最有可能的两种选择是: RxSwift或苹果的组合(如果成熟到足以满足您的需求,甚至是OpenCombine )。还有其他一些选择(ReactiveSwift,滚动您自己的),但我们需要确切地知道为什么选择哪一个。尽管您可能会窥探RxCocoa的实现以求、借用、滑动和模仿想法,但您将严格避免使用视图、交互器、演示者和路由器区域之间的任何RxCocoa本身。您可以设计自己的应用程序域使用RxSwift (在某种程度上类似于RxCocoa将苹果框架改编为RxSwift),而RxCocoa没有泄露任何Apple OS框架结构到跨区域的反应效果流消息传递中。
  • 然后,视图、交互者、演示者和路由器区域之间的所有区域间消息传递都是通过您选择的效果流框架进行的--在跨越VIPER区域边界时使用您的应用程序域表示什么事件正在传播(不涉及领域或Apple-OS框架/结构/概念)。这种即将到来的--未来可互换的隔离区域--使VIPER成为一个干净的体系结构,这样就可以抛弃领域(在您的应用程序的某些端口到不同的环境中,或者某一天更好地取代领域),这样iOS框架就可以被抛弃(某一天在应用程序的某些MacOS端口中,反之亦然,甚至有一天在应用程序的某些Android或UWP端口中)。
  • 通过在以应用域为中心的跨区域消息传递中依赖指定的反应效应-流库/框架,您不会像在OP中那样尝试使用UIKit的AppDeleglate进行任何区域间消息传递。这个答案实际上是彻底地解释了“创建服务”的反应解释是什么样子的。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46285453

复制
相关文章
Ubuntu 14.04 Server 如何安装 Webmin
webmin 是一款通过 WEB 方式远程管理主机的工具软件,通过 webmin 可以通过图形界面远程对主机进行设置,webmin 包括了很多插件,通过安装插件实现对主机更多功能的管理。
星哥玩云
2022/07/01
1.4K0
Ubuntu 14.04 Server 如何安装 Webmin
如何在Ubuntu 18.04上安装Webmin
Webmin是适用于任何Linux机器的基于Web的控制面板,可让您通过基于Web的现代界面管理服务器。使用Webmin,您可以动态更改常用软件包的设置,包括Web服务器和数据库,以及管理用户,组和软件包。
好烟
2018/08/01
2.1K0
如何在Ubuntu 18.04上安装Webmin
如何在Ubuntu 16.04上安装Webmin控制面板和模块
Webmin是一个Web界面,允许您通过浏览器管理配置文件和重新加载程序,而无需SSH连接到您的Linode。它是cPanel或Plesk等管理面板的流行替代品,并且包含许多使其受欢迎的功能。许多第三方模块适用于不同的用例,这有助于提高Webmin控制面板的灵活性。
小翼111
2018/08/20
2.6K0
如何在 Ubuntu 20.04 上安装 Webmin
本文最先发布在:https://www.itcoder.tech/posts/how-to-install-webmin-on-ubuntu-20-04/
雪梦科技
2020/05/22
2.9K0
如何在 Ubuntu 20.04 上安装 Webmin
如何在 CentOS 8 上安装 Webmin
Webmin 是一个开源控制面板,它允许你通过简单易用的 Web 界面,就可以管理你的 Linux 服务器。它允许你管理用户,组,磁盘配额,创建文件和目录,也能配置大多数流行的服务,包括 Web,FTP,Email 和数据库。
雪梦科技
2020/05/11
2.8K0
如何在 CentOS 8 上安装 Webmin
如何在Debian 9上安装Webmin
Webmin是适用于任何Linux机器的现代Web控制面板,允许您通过简单的界面管理服务器。使用Webmin,您可以动态更改常用软件包的设置。
新巴子
2018/11/08
2.5K0
如何在服务器上安装Webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,可以让您用远端电脑上的浏览器,直接修改服务器里的使用者帐号、Apache、DNS、文件分享等设定。Virtualmin是Webmin的一个插件,它通过单一界面简化了对多个虚拟主机的管理,类似于cPanel或Plesk。使用Virtualmin,您可以管理用户帐户,Apache虚拟主机,DNS条目,MySQL数据库,邮箱等等。
葡萄
2018/08/02
3.9K0
如何在服务器上安装Webmin
在CentOS 7上安装Webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,可以让您用远端电脑上的浏览器,直接修改服务器里的使用者帐号、Apache、DNS、文件分享等设定。
八十岁的背影
2018/07/25
4.9K0
在CentOS 7上安装Webmin
在Ubuntu 14.04上安装 Webmin
Webmin是一个开源的基于网页的Unix/Linux系统管理工具。通过使用Webmin,你可以在浏览器上设置和安装所有的系统服务,包括:DNS、DHCP、Apache、NFS和Samba等等。因此,有了这个,你就再也不需要去记住所有的修改配置的命令了。
星哥玩云
2022/07/01
1.8K0
在Ubuntu 14.04上安装 Webmin
Webmin <= 1.920 - 未经身份验证的RCE
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。
洛米唯熊
2019/08/20
3.4K0
Webmin <= 1.920 - 未经身份验证的RCE
在你的服务器上安装Webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,可以让您用远端电脑上的浏览器,直接修改服务器里的使用者帐号、Apache、DNS、文件分享等设定。
爆栈工程师
2018/07/24
1.6K0
在你的服务器上安装Webmin
Linux 主机管理软件 Webmin 1.7 安装
Webmin 是一款基于 Web 的主机管理软件,该软件非常强大,几乎可以对主机进行所有的管理操作,如果对命令行管理主机不熟悉,可使用 Webmin,通过它,您可以轻松地管理主机用户帐户,磁盘配额,服务,配置文件,管理的Apache服务器,DNS,文件共享和其他东西。这是一个相当有用的管理工具。
星哥玩云
2022/07/03
2.7K0
Linux 主机管理软件 Webmin 1.7 安装
【说站】python模块如何安装
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
很酷的站长
2022/11/24
5650
【说站】python模块如何安装
在AlamaLinux上安装Webmin GUI服务器管理器
仍然不习惯使用 Linux 命令行?试试 Webmin,它是一个图形界面,可以帮助您管理和配置 Linux 服务器。
云云众生s
2024/07/07
1590
在AlamaLinux上安装Webmin GUI服务器管理器
Webmin RCE 漏洞复现
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。
sugarbeet
2022/09/26
1.4K0
Webmin RCE 漏洞复现
VPS安装Virtualmin面板
对一些Linxu操作不太熟悉的用户可以在VPS上安装web控制面板来简化添加网站或数据库等操作,常用的有cPanel、DirectAdmin、Virtualmin/Webmin、Kloxo这几种web控制面板,但是cPanel、DirectAdmin、Kloxo都是收费的控制面板,并且比较占用系统内存和资源,一般被空间销售商用作虚拟空间的销售;Virtualmin/Webmin是一款免费并且占用系统资源比较小的web控制面板,非常适合在VPS上安装。Hi-VPS强烈建议安装Virtualmin/Webmin作为VPS上的web控制面板.
星哥玩云
2022/07/04
18.1K0
VPS安装Virtualmin面板
已安装的nginx如何添加模块
nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so。这里以安装第三方ngx_http_google_filter_module模块为例: 1. 下载第三方扩展模块ngx_http_google_filter_module
菲宇
2019/06/12
12.7K0
Python如何安装cv2模块
关于用python实现答题卡识别的方法中,需用到cv2模块,在实际实验中,遇到了cv2模块安装失败的问题,本博客主要提出几个安装cv2的方法。
算法与编程之美
2022/05/23
8.2K0
python(pip)包/模块:如何离线安装?
如果有同环境服务器,可直接生成requirements.txt,会把当前服务器下的包和版本写入文件中。
Python学习者
2024/05/21
4690
CVE-2019-15107:Webmin RCE复现
本来前一阵就想复现来着,但是官网的版本已经更新了,直到今天才发现Docker上有环境,才进行了复现
Timeline Sec
2019/12/15
1.1K0

相似问题

X小时后从云存储中删除媒体

12

realm android删除所有数据

51

24小时后从Mysql中删除数据

21

Realm在删除PrimaryKey后未更改配置

16

Android Realm -删除后返回RealmObject

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档