Okay, we're onto the first of what I described as the "stone cold brilliant patterns". This particular one looks obvious, but its benefits are actually quite subtle. There are basically only two ways of creating an object in .NET: Call new Call a function that calls new The factory pattern is basically just using the latter. Now, this might strike you as an unnecessary level of indirection, and you might be right. You'd be right if: The class is a pure data transfer object. The class doesn't have a complex data structure. The class has...