On the Ossigeno blog there's a recent post from giorgio that suggests that you should use a factory design pattern as often as you possibly can.
Why using a factory to produce simple objects? Because new keyword has to be isolated, even if it is only new Form(); [...] The descripted design is classic test-driven development: ask for dependencies in the constructor, so you can test the class in isolation by passing in mocks objects; then build factories that have methods for creating the top-level objects that you use in your script (or controllers, or views).
He includes a few code examples of what a factory pattern looks like and gives his reasoning as to why this should be a best practice:
Because the point is in abstracting away the process, much like the Law of Demeter suggest to do with composed/aggregated object methods. If the constructor is going to change, just one line of code has to be edited to accommodate new dependencies.