Refer
http://www.dotnetuncle.com/Design-Patterns/dot-net-design-pattern-interview-questions.aspx
Design patterns are mainly of three types
Creational
Structural
Behavioral
Creational patterns are ones that create objects for you,
rather than having you instantiate objects directly. This
gives your program more flexibility in deciding which
objects need to be created for a given case.
Structural patterns help you compose groups of objects into
larger structures, such as complex user interfaces or
accounting data.
Behavioral patterns help you define the communication
between objects in your system and how the flow is
controlled in a complex program