- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我知道这个问题可能看起来无关紧要或太基本,但是 - 因为我总是想知道我在做什么以及为什么这样做,如果它适合我的设计 - 请透露一些信息。
所以,这就是我需要的:
所以,假设我们有一个名为“MyDocumentManager”的类。
<小时/>这是我通常做的事情:
+ (MyDocumentManager*)documentManager
{
MyDocumentManager* newDocumentManager = [[MyDocumentManager alloc] init];
if (newDocumentManager)
{
// initialize that new document manager
}
return newDocumentManager;
}
然后像这样使用它:
[[MyDocumentManager documentManager] someMethod];
<小时/>
但是,我通常看到人们提出类似的建议:
+ (MyDocumentManager*)sharedManager
{
static dispatch_once_t pred;
static MyDocumentManager *sharedManager;
dispatch_once(&pred, ^{
sharedManager = [[MyDocumentManager alloc] init];
});
return sharedManager;
}
<小时/>
所以,这是我的问题:
最佳答案
Is it the same thing?
没有。
If not, what is the difference?
您所拥有的并没有实现单例,因为它会在每次函数调用时分配该类的新实例。它更确切地称为工厂方法。单例的定义是某个类方法始终返回该类的相同实例。
Which one should I use and why?
您通常应该避免使用单例,因为它通常被认为是不好的做法,尽管在某些情况下使用它们很方便。例如,如果您有一个使用封装数据的类,但只需要准类级方法,那么最好使用正确放置的实例变量来实现单例,而不是实现类方法和大量全局/静态变量(这是因为在Objective-C,类不能有成员变量,只能有对象)。
Do they both fit what I need them for?
你决定。
关于objective-c - 为什么使用单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183526/
我最近购买了《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
我是一名优秀的程序员,十分优秀!