dream-coder.de Blog über .NET, SQL Server, PHP, Typo3 und sonstige Themen

31Jan/105

Singleton Muster

Das Singleton Muster (Singleton Pattern) ist ein Entwurfsmuster in der Sofwareentwickung, welches beschreibt, das man ein Objekt nur einmal instanziieren darf.

Was genau wird realisiert?

Der Konstruktor des Objektes wird auf private gesetzt. Dies hat zur Folge, das man keine Instanz mit dem new Operator erstellen kann. Danach wird eine statische Methode erstellt, die eine neue Instanz des Objektes zurück gibt. In dieser Methode wird überprüft, ob es schon eine Instanz gibt, anhand einer statischen Membervariable. Das wars. Eingesetzt wird dies unter anderem bei Winforms, damit man ein Fenster nicht mehrfach erzeugen kann.

class Singleton
{
        /**
         * @var Singeleton
         */
	private static $_instance;
 
        /**
         * Kontruktor MUSS logischerweise auf private gesetzt werden
         */
	private function __construct() { /* beliebiger CODE */ }
 
        /**
         * @return Singleton
         */
	public function getInstance() {
		if (self::$_instance == null || !(self::$_instance instanceof Singeleton)) {
			self::$_instance = new Singleton();
		}
		return self::$_instance;
	}
}
 
// aufruf
$mySingletonOnject = Singleton->getInstance();

Quelle: Wikipedia DE

// Nur zur Veranschaulichung – bitte nicht verwenden!
sealed class Singleton
{
    private Singleton() { /* beliebiger CODE im Kontruktor */ }
    private static Singleton _instance = null;
 
    public static Singleton getInstance()
    {
       if(_instance == null) {
          _instance = new Singleton();
       }
       return _instance;
    }
}
 
// Diese Version verwenden, wegen der ThreadSicherheit
sealed class Singleton
{
    private Singleton() { /* beliebiger CODE */ }
    private static volatile Singleton _instance = null;
 
    public static Singleton getInstance()
    {
       // DoubleLock
       if(_instance == null) {
          lock(m_lock) {
              if (_instance == null) {
                  _instance = new Singleton();
              }
          }
       }
       return _instance;
    }
 
    // Hilfsfeld für eine sichere Threadsynchronisierung
    private static object m_lock = new object();
}
 
// Zugriff über Singleton 
Singleton MySingletonObject = Singleton.getInstance();

Für weitere Informationen zu Singleton oder weiteren Design Pattern empfehle ich folgende Links

Edit: eine erweiterte Variante, basieren auf Dirk Primbs Post

sealed class Singleton
{
    // > c# 2008 - Hier wird eine statische Variable erzeugt, die mit 
    // volatile => Threadsafe
    // readonly => mit dem Schlüsselwort stellen wir sicher, das keine neue Instanz erzeugt wird
    public static readonly volatile Singleton Instance = new Singleton();
 
    public string Name {get; set; }
 
    // Konstruktor auf private
    private Singleton() { /* beliebiger CODE */ }
 
}
 
 
// Testing
var x = Singleton.Instance;
x.Name = "Hans";
 
var y = Singleton.Instance;
y.Name = "Werner";
 
// Beide Ausgaben ergeben Werner, weil es nur eine Instanz des Objektes zurückgegeben wird
Console.WriteLine("X: " + x.Name);
Console.WriteLine("Y: " + y.Name);
Console.ReadLine();
{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Singleton Muster // dream-coder.de
  • Yigg in Singleton Muster // dream-coder.de
  • Webnews in Singleton Muster // dream-coder.de
  • Digg in Singleton Muster // dream-coder.de
  • Delicious in Singleton Muster // dream-coder.de
  • Stumbleupon in Singleton Muster // dream-coder.de
  • Reddit in Singleton Muster // dream-coder.de
  • Ask in Singleton Muster // dream-coder.de
  • Facebook in Singleton Muster // dream-coder.de
  • Google in Singleton Muster // dream-coder.de
  • Live in Singleton Muster // dream-coder.de
  • Myspace in Singleton Muster // dream-coder.de
  • Technorati in Singleton Muster // dream-coder.de
  • Twitter in Singleton Muster // dream-coder.de

Related Posts:

24Dec/090

Frohe Weihnachten 2009

Ich wünsche allen Lesern, Kollegen und Freunden gute Weihnachten, ein fröhliches Fest und einen guten Rutsch in das Jahr 2010.

Happy Coding Icon Smile in Frohe Weihnachten 2009 // dream-coder.de

Christian

{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Frohe Weihnachten 2009 // dream-coder.de
  • Yigg in Frohe Weihnachten 2009 // dream-coder.de
  • Webnews in Frohe Weihnachten 2009 // dream-coder.de
  • Digg in Frohe Weihnachten 2009 // dream-coder.de
  • Delicious in Frohe Weihnachten 2009 // dream-coder.de
  • Stumbleupon in Frohe Weihnachten 2009 // dream-coder.de
  • Reddit in Frohe Weihnachten 2009 // dream-coder.de
  • Ask in Frohe Weihnachten 2009 // dream-coder.de
  • Facebook in Frohe Weihnachten 2009 // dream-coder.de
  • Google in Frohe Weihnachten 2009 // dream-coder.de
  • Live in Frohe Weihnachten 2009 // dream-coder.de
  • Myspace in Frohe Weihnachten 2009 // dream-coder.de
  • Technorati in Frohe Weihnachten 2009 // dream-coder.de
  • Twitter in Frohe Weihnachten 2009 // dream-coder.de

Related Posts:

Tagged as: No Comments
17Dec/092

40 % – 50 % Rabatt auf alle Microsoft Press Bücher

Schnell zuschlagen, nur noch bis Ende des Jahres

  • 40% auf gedruckte Bücher
  • 50% auf eBooks

Hi,

Micorosoft Press hat die Vermarktung seiner Bücher vollständig an O’Reilly übergeben. Um das ganze zu feiern bekommt man bis Ende des Jahres 40 % auf gedruckte Bücher und 50 % auf eBooks. Man muß seine Bestellung dafür einfach nur über das neue Shopsystem durchführen und den Rabattcode: MSINT eingeben.

Link zum Shop: http://microsoftpress.oreilly.com/?cmp=il-orm-msp-msphp-msint

Die Aktion läuft wohl noch bis Ende diesen Jahres.

Happy shopping

via http://www.security-blog.eu/

{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Yigg in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Webnews in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Digg in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Delicious in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Stumbleupon in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Reddit in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Ask in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Facebook in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Google in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Live in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Myspace in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Technorati in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de
  • Twitter in 40 % – 50 % Rabatt auf alle Microsoft Press Bücher // dream-coder.de

Related Posts:

  • No Related Posts
22Nov/092

My Tools

Um das arbeiten am PC zu vereinfachen, gibt es ja eine Menge Tools. Welche ich einsetze, von denen ich bisher überzeugt bin, möchte ich euch nicht vor enthalten:

IDE:

Vielleicht kennt ja der ein oder andere einige noch nicht.

Empfehlungen von euch:

  • UltraMon (Multiple Monitore handeln) UltraMon
{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in My Tools // dream-coder.de
  • Yigg in My Tools // dream-coder.de
  • Webnews in My Tools // dream-coder.de
  • Digg in My Tools // dream-coder.de
  • Delicious in My Tools // dream-coder.de
  • Stumbleupon in My Tools // dream-coder.de
  • Reddit in My Tools // dream-coder.de
  • Ask in My Tools // dream-coder.de
  • Facebook in My Tools // dream-coder.de
  • Google in My Tools // dream-coder.de
  • Live in My Tools // dream-coder.de
  • Myspace in My Tools // dream-coder.de
  • Technorati in My Tools // dream-coder.de
  • Twitter in My Tools // dream-coder.de

Related Posts:

19Nov/096

Google Chrome OS – Source veröffentlicht + Demo Video + Dowload

Google hat heute ein Demovideo seines neuen Betriebssystemes Google Chrome OS, welches auf Linux / Unix basiert herausgegeben. Interessant ist, das Chrome OS komplett auf dem Browser Chrome im Vollbild setzt.

Features

  • Booten in wenigen Sekunden (etwa 5 bis 7 sekunden)
  • Alle Programme laufen im Browser
  • Verschlüsseltes Dateisystem und Daten in der Cloud

Video: Live-Demonstration von ChromeOS (9:19)

Thomas hat auch dazu eine interessanten Beitrag geschrieben.

Update: Google Chrome OS VMWare Image herunterladen

Quelle: chip.de

Hinweis: Zur Anmeldung benötigen Sie einen Google-Account. Das Google Chrome OS wird dann mit einer englischen Tastatureinstellung gestartet. Das @-Zeichen für die Anmeldung erhalten Sie mit der Tastenkombination [Shift] + [2].

{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Yigg in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Webnews in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Digg in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Delicious in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Stumbleupon in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Reddit in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Ask in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Facebook in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Google in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Live in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Myspace in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Technorati in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de
  • Twitter in Google Chrome OS - Source veröffentlicht + Demo Video + Dowload // dream-coder.de

Related Posts:

11Oct/097

Windows – SVN Verzeichnisse rekursiv löschen

In einem älterem Beitrag habe ich gezeigt, wie man unter Linux SVN-Ordner rekursiv löschen kann.

Hier zeige ich, wie praktisch man es unter Windows tun kann.

Man erstellt sich eine *.reg - Datei mit folgendem Inhalt:

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

Diese dann ausführen. Danach erhält man einen Eintrag im Kontextmenü, wenn man über Ordner "Rechtsklick" macht:

Win Delete Svn in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de

Windows - Delete SVN Folders

Nun kann man bequem auf den Ordner gehen, indem die ganzen .svn Ordner drin liegen und mit dem Kontextmenü löschen.

{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Yigg in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Webnews in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Digg in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Delicious in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Stumbleupon in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Reddit in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Ask in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Facebook in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Google in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Live in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Myspace in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Technorati in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de
  • Twitter in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de

Related Posts:

27Sep/090

Bei jedem Treffer geht eine lokale Datei verloren

Mal wieder Lust, den Rechner neu zu machen?

Dieses Spiel soll ein "Kunstwerk" darstellen. Bei jedem Treffer auf das gegnerische Schiff wird lokal eine Datei "unwiderruflich" zersört.

Quelle: http://www.golem.de/0909/70014.html

Video: LoseLose - das etwas andere Spiel von Zach Gage (0:54)
{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Yigg in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Webnews in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Digg in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Delicious in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Stumbleupon in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Reddit in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Ask in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Facebook in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Google in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Live in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Myspace in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Technorati in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de
  • Twitter in Bei jedem Treffer geht eine lokale Datei verloren // dream-coder.de

Related Posts:

  • No Related Posts
Filed under: Allgemein No Comments
15Sep/090

Visual Studio 2008 – Debugging Javascript

Ist zwar schon älter, aber ich nehme es auch mit in das Archiv.

Javascript Debuggen mit Visual Studio 2008 von Scott Guthrie

{lang: 'de'}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Yigg in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Webnews in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Digg in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Delicious in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Stumbleupon in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Reddit in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Ask in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Facebook in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Google in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Live in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Myspace in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Technorati in Visual Studio 2008 - Debugging Javascript // dream-coder.de
  • Twitter in Visual Studio 2008 - Debugging Javascript // dream-coder.de

Related Posts:

Page optimized by WP Minify WordPress Plugin