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===
<sourcesyntaxhighlight lang='java'>
public final class Singleton {
private final static Singleton ourInstance = new Singleton();
Linia 20:
}
}
</syntaxhighlight>
</source>
 
=== Rozwiązanie 2 (tylko Java 5 i nowsza) (To rozwiązanie nie jest Thread Safe) ===
<sourcesyntaxhighlight lang='java'>
public final class Singleton {
 
Linia 45:
 
}
</syntaxhighlight>
</source>
 
=== Rozwiązanie 3 (Rozwiązanie Thread Safe) ===
<sourcesyntaxhighlight lang="java">
public class Singleton {
Linia 62:
}
}
</syntaxhighlight>
</source>
 
=== Rozwiązanie 4 (tylko Java 5 i nowsza) ===
<sourcesyntaxhighlight lang="java">
public enum Singleton {
 
Linia 72:
}
</syntaxhighlight>
</source>
 
== JavaScript ==
=== Rozwiązanie 1 ===
<sourcesyntaxhighlight lang='javascript'>
//"new" uniemożliwia tworzenie kolejnych instancji
var singleton = new function() {
Linia 86:
singleton.foo = 5;
singleton.bar(); //wypisze 5
</syntaxhighlight>
</source>
=== Rozwiązanie 2 (JSON) ===
<sourcesyntaxhighlight lang='javascript'>
//"new" nie utworzy obiektu na podstawie tablicy..
var singleton = {
Linia 98:
singleton.foo = 5;
singleton.bar(); //wypisze 5
</syntaxhighlight>
</source>
== PHP 5 ==
<sourcesyntaxhighlight lang='php'><?php
 
class Singleton
Linia 124:
$singleton = Singleton::getInstance();
?></sourcesyntaxhighlight>
 
== ActionScript 3 ==
=== Rozwiązanie 1 ===
 
<sourcesyntaxhighlight lang='actionscript'>
package
{
Linia 152:
}
}
</syntaxhighlight>
</source>
 
=== Rozwiązanie 2 ===
 
<sourcesyntaxhighlight lang='actionscript'>
package {
 
Linia 172:
}
}
</syntaxhighlight>
</source>
 
 
Linia 178:
=== Rozwiązanie 1 ===
 
<sourcesyntaxhighlight lang="csharp">
sealed class Singleton {
private static readonly Singleton instance = new Singleton();
Linia 191:
}
}
</syntaxhighlight>
</source>
 
=== Rozwiązanie 2 (dla C# 2.0 i nowszych) ===
<sourcesyntaxhighlight lang="csharp">
public class Singleton<T> where T : class, new()
{
Linia 222:
}
}
</syntaxhighlight>
</source>
 
== C++ ==
<sourcesyntaxhighlight lang="cpp">
//Definicja
class singleton
Linia 249:
//Uzycie
std::cout << singleton::getInstance().method();
</syntaxhighlight>
</source>
 
== Pascal ==
<sourcesyntaxhighlight lang='pascal'>
//Free Pascal Compiler version 2.6.2
program singleton;
Linia 300:
 
 
</syntaxhighlight>
</source>
 
== Python ==
<sourcesyntaxhighlight lang='python'>
class Singleton(object):
def __new__(type):
Linia 322:
# TAKIE SAME, ta sama instancja klasy
print id(a),id(b)
</syntaxhighlight>
</source>
 
== Objective-C==
<sourcesyntaxhighlight lang='objc'>
#import "Singleton.h"
 
Linia 387:
}
@end
</syntaxhighlight>
</source>
[[Kategoria:Kody źródłowe]]