- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为了征求更多意见,我重写了问题(我正在学习如何提问,英语不是我的母语)...
将所有方法和全局变量保持为静态是多余的还是最佳实践? (我的意思是本身只有一个实例)
最佳答案
如果所有方法都不依赖于类的状态(实例属性),那么您不需要单例,只需将它们全部声明为 static
- 您将拥有一个实用程序然后上课(这是问题中提出的第二种方法)。
另一方面,如果方法确实依赖于类的状态,并且您必须及时确保该类的一个实例在任何时候都存在,那么使用单例(这是问题中建议的第一种方法)。
请注意,第二种方法并不真正被视为单例,作者 definition单例是一种“用于通过将类的实例化限制为一个对象”来实现单例的数学概念的模式,以及具有所有静态
方法的类根本不需要实例化。
编辑:
关于在单例类中调用静态方法,在对象实例上调用静态方法被认为是不好的风格,它是否是单例并不重要。这已在之前的 posts 中进行了广泛讨论.因此,为了一致性,我认为最好将单例中的所有方法声明为非static
,即使它们不依赖于实例属性,并通过单例访问所有方法(您问题中的第一种方法)。
关于java - 给定一个单例 : need for static methods and vars?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497961/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!