You are on page 1of 1

Search...

Enterprise Pricing Sign In START FREE TRIAL

C# Cookbook by Jay Hilyard, Stephen Teilhet

3.32. The Single Instance Object

Problem
You have a data type that will be used by several clients. This data type will
create and hold a reference to another object that takes a long time to create;
this could be a database connection or an object that is made up of many
internal objects, which also must be created along with their containing object.
Rather than allow this data type to be instantiated many times by many
different clients, you would rather have a single object that is instantiated only
one time and used by everyone.

Solution
The following two code examples illustrate the two singleton design patterns. The
first design always returns the same instance of the OnlyOne class through its
GetInstance method:

public sealed class OnlyOne


{
private OnlyOne( ) {}

private static OnlyOne theOneObject = null;

public static OnlyOne GetInstance( )


{
lock (typeof(OnlyOne))
{
if (theOneObject == null)
{
OnlyOne.theOneObject = new OnlyOne( );
}

return (OnlyOne.theOneObject);
}
}

public void Method1( ) {}


public void Method2( ) {}
}

The second design uses only static members to implement the singleton design
pattern:

public sealed class OnlyStaticOne


{
private OnlyStaticOne( ) {}

// Use a static constructor to initialize the singleton


static OnlyStaticOne( ) {}

public static void Method1( ) {}


public static void Method2( ) {}
}

Discussion
The singleton design pattern allows one and only one instance of a class to exist
in memory at any one time. Singleton classes are useful when you ...

With Safari, you learn the way you learn best. Get
unlimited access to videos, live online training,
learning paths, books, interactive tutorials, and
more.

START FREE TRIAL

No credit card required

Explore Learn Twitter Terms of Service

Tour Blog Membership Agreement


GitHub

Pricing Contact Privacy Policy


Facebook

Enterprise Careers
LinkedIn
Government Press Resources

Education Support

Queue App

Copyright © 2019 Safari Books Online.

You might also like