Singleton (wzorzec projektowy)/kod: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
Dodano przykład dla Free Pascal |
m bot poprawia starą składnię wiki |
||
Linia 9:
== Java ==
===Rozwiązanie 1===
<
public final class Singleton {
private final static Singleton ourInstance = new Singleton();
Linia 20:
}
}
</syntaxhighlight>
=== Rozwiązanie 2 (tylko Java 5 i nowsza) (To rozwiązanie nie jest Thread Safe) ===
<
public final class Singleton {
Linia 45:
}
</syntaxhighlight>
=== Rozwiązanie 3 (Rozwiązanie Thread Safe) ===
<
public class Singleton {
Linia 62:
}
}
</syntaxhighlight>
=== Rozwiązanie 4 (tylko Java 5 i nowsza) ===
<
public enum Singleton {
Linia 72:
}
</syntaxhighlight>
== JavaScript ==
=== Rozwiązanie 1 ===
<
//"new" uniemożliwia tworzenie kolejnych instancji
var singleton = new function() {
Linia 86:
singleton.foo = 5;
singleton.bar(); //wypisze 5
</syntaxhighlight>
=== Rozwiązanie 2 (JSON) ===
<
//"new" nie utworzy obiektu na podstawie tablicy..
var singleton = {
Linia 98:
singleton.foo = 5;
singleton.bar(); //wypisze 5
</syntaxhighlight>
== PHP 5 ==
<
class Singleton
Linia 124:
$singleton = Singleton::getInstance();
?></
== ActionScript 3 ==
=== Rozwiązanie 1 ===
<
package
{
Linia 152:
}
}
</syntaxhighlight>
=== Rozwiązanie 2 ===
<
package {
Linia 172:
}
}
</syntaxhighlight>
Linia 178:
=== Rozwiązanie 1 ===
<
sealed class Singleton {
private static readonly Singleton instance = new Singleton();
Linia 191:
}
}
</syntaxhighlight>
=== Rozwiązanie 2 (dla C# 2.0 i nowszych) ===
<
public class Singleton<T> where T : class, new()
{
Linia 222:
}
}
</syntaxhighlight>
== C++ ==
<
//Definicja
class singleton
Linia 249:
//Uzycie
std::cout << singleton::getInstance().method();
</syntaxhighlight>
== Pascal ==
<
//Free Pascal Compiler version 2.6.2
program singleton;
Linia 300:
</syntaxhighlight>
== Python ==
<
class Singleton(object):
def __new__(type):
Linia 322:
# TAKIE SAME, ta sama instancja klasy
print id(a),id(b)
</syntaxhighlight>
== Objective-C==
<
#import "Singleton.h"
Linia 387:
}
@end
</syntaxhighlight>
[[Kategoria:Kody źródłowe]]
|