Singleton (wzorzec projektowy)/kod: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Anulowanie wersji nr 254004 utworzonej przez Artur Gurgul (dyskusja)
m Wycofano edycje użytkownika 83.11.255.85 (dyskusja). Autor przywróconej wersji to Trejder.
Linia 14:
public static Singleton getInstance() {
return ourInstance;
}}
 
//żeby uniknąć automatycznego tworzenia domyślnego, publicznego, bezargumentowego konstruktora
Linia 235:
# TAKIE SAME, ta sama instancja klasy
print id(a),id(b)
</source>
 
== Objective-C==
<source lang='objc'>
#import "Singleton.h"
 
@implementation Singleton
 
//wskaźnik do instancji klasy
static Singleton *sharedSingleton = nil;
 
- (id)init {
if ( self = [super init] ) {
return self;
} else {
return nil;
}
}
 
+ (Singleton*)sharedInstance {
@synchronized(self) {
if (sharedSingleton == nil) {
[[self alloc] init];
}
}
return sharedSingleton;
}
 
+ (id)allocWithZone:(NSZone *)zone {
@synchronized(self) {
if (sharedSingleton == nil) {
sharedSingleton = [super allocWithZone:zone];
return sharedSingleton;
}
}
return nil;
}
 
- (id)copyWithZone:(NSZone *)zone {
return self;
}
 
- (id)retain {
return self;
}
 
- (unsigned)retainCount {
return UINT_MAX;
}
 
- (void)release {
 
}
 
- (id)autorelease {
return self;
}
@end
</source>
[[Kategoria:Kody źródłowe]]