On 09/08/2013, at 1:06 PM, Rich Dougherty <notifications@github.com> wrote:

> The caller is responsible for opening the object—calling these methods give them an open object. Or are you suggesting we return an SBTDocLink in an unopened state, so the caller can then immediately call open on it? In general I prefer objects to be in a usable state when created, unless there's a strong reason to do otherwise. I think it makes the code easier to understand if objects have fewer states.
> 
> 
I think this is important. I am suggesting that the object is returned in an unopened state. Otherwise the implications for memory management are unclear. In essence, the thing that opens something should close it. Its a common pattern of course.

I also don't like the idea of the factory having to cleanup generally. The methods themselves do not connote that cleanup should be required.