Design Patterns in C# 2e written by Jean Paul is a nice resource for learning design patterns he had put all his learning effort of 1 year on design patterns.
He had provided source in his blog post.
Definition:
Creates an instance of several derived classes.
or
Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. Continue reading
Definition:
Ensure a class only has one instance and provide a global point of access to it.
Structure:
Definition:
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Structure:

Definition:
Separate the construction of a complex object from its representation so that the same construction process can create different representations.
Definition:
Design Patterns represent solutions to problems which arise when developing a software within a particular context.
using System;
namespace CSharp
{
//Singleton: Ensure a class only has one instance,
//and provide a global point of access to it.
class Singleton
{
//Member Variable
private static Singleton instance = null;
//Memeber Functions
private Singleton()
{
}
public static Singleton Instance()
{
if(instance == null )
{
instance = new Singleton ();
}
return instance;
}
public void print()
{
Console.WriteLine("Singleton Class" );
}
};
class Program
{
static void Main(string[] args)
{
Singleton n = Singleton .Instance();
n.print();
Singleton p = Singleton .Instance();
p.print();
}
}
}