ios - 来自 iOS 中不同 ViewControllers 时改变行为的全局变量/单例的替代品。
问题描述
关于全局变量的替代方案,SO 上已经存在许多问题。我希望这个问题对一个场景足够具体,以获得回应。
我(错误地)依赖于 10 多个全局变量,这些变量在连接到新的 ViewController 或 RestAPI 完成处理程序后用于区分行为。
例子:
var comingFromRegister: Bool = false
var comingFromMenuToUpdateAddress: Bool = false
var comingFromCancelOrderFromOrdersVC: Bool = false
我很好奇摆脱全局变量的最佳方法是什么。我可以创建一个名为 ComingFrom 的单例类来处理这些场景,例如:
final class ComingFrom {
static let shared = ComingFrom()
var register: Bool = false
var menuToUpdateAddress: Bool = false
var cancelOrderFromOrdersVC: Bool = false
private init() {}
}
因为依赖单例有很多缺点,对于这些场景有什么更好的方法?
解决方案
这取决于您的架构。对于您的情况,似乎 enum 更好。
推荐阅读
- batch-file - 如何使用cmd合并多个tmp文件的前N个单词
- node.js - Google Datastore 节点查询 JS 中的 Order By 和 Group By
- javascript - 向下滚动向右滚动,向上滚动向左
- java - 使用 myBatis 从 DB 中读取 JSON
- mysql - 为什么'select * from Employee group by Id'比直接使用Employee表要快得多?
- angular - Angular (2+) 组件提供对投影内容的绑定
- ruby-on-rails - 在另一个目录中运行 rake 任务
- asp.net-core-mvc - 远程验证因 IFormFile 属性而失败
- r - 如何将标题与换行符左对齐?
- amazon-s3 - 如何重定向仅为下载创建的 Amazon S3 存储桶的根?