Design patterns and object creation