大佬教程收集整理的这篇文章主要介绍了任何不使用的理由在Swift中使用单例“变量”?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class Model { static let shared = Model() // ( for ocd friends ... private init() {} ) func test()->Double { return 3.33 } }
其他地方……
// file ViewController.swift,say import UIKit class ViewController:UIViewController { override func viewDidLoad() { super.viewDidLoad() print("view controller loaded!") print("singleton test! \( Model.shared.test() )") } }
没问题.
然而.我加上这个小东西……
public let model = Model.shared public class Model { static let shared = Model() func test()->Double { return 3.33 } }
那么,你可以简单地在项目范围内进行以下操作:
class ViewController:UIViewController { override func viewDidLoad() { super.viewDidLoad() print("view controller loaded!") print("singleton test! \( model.test() )") } }
常规习语:
@H_360_5@model.shared.blah()…你在代码库中到处都看到了这一点“我的”成语:
@H_360_5@model.blah()…你在代码库中到处都看到了这个所以,这导致一切看起来很漂亮:
(在你的项目中,那些“单例变量”将是分数,网络,启发式等,或者你的项目中的任何情况.)
然后,这是一个“宏观”的成语.
唯一的目的是代码的外观.
将ImportantSystem.SharedImportantSystem的外观简化为importantSystem.整个项目.
任何人都可以看到这个成语有什么问题吗?
问题可能是技术问题,风格问题或任何其他类别,只要问题非常深刻.
另外,对于全局变量(尤其是简单名称,如“模型”),您可能会有一些类似命名变量的未来类,并且意外地引用了错误的变量.
关于全局v单体与其他模式的一般考虑的讨论,请参阅Global Variables Are Bad,尽管有相当的标题,但它提出了一个清醒的讨论,有一些有趣的链接并提出了替代方案.
顺便说一句,对于你的“OCD朋友”(我猜我必须在其中,因为我认为这是最好的做法),不仅要声明init是私有的,而且你可能会声明整个类是最终的,避免子类化(此时它对共享引用变得模糊).
以上是大佬教程为你收集整理的任何不使用的理由在Swift中使用单例“变量”?全部内容,希望文章能够帮你解决任何不使用的理由在Swift中使用单例“变量”?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。