Design patterns in C# - Metsker, Steven John (Addison-Wesley, 2004)