On Jul 13, 2012, at 2:23 AM, Maik Musall wrote:

> 
> Am 13.07.2012 um 01:20 schrieb Ramsey Gurley:
> 
>> 
>> On Jul 12, 2012, at 3:26 PM, Maik Musall wrote:
>> 
>>> 
>>> Am 12.07.2012 um 23:58 schrieb Louis Demers:
>>>> User newUser = (User)EOUtilities.createAndInsertInstance(ec, 
>>>> User.ENTITY_NAME) ;
>>> 
>>> Much too wordy for my taste, and needs a cast on top of it. Just add a 
>>> second constructor in your template which does ec.insertObject(this), so 
>>> that you can simply use
>>> 
>>>     User newUser = new User( ec );
>>> 
>>> Do not delete the parameter-less constructor though, because EOF needs that 
>>> internally when restoring objects from db. But refrain from using that 
>>> anywhere in your app.
>>> 
>>> Maik
>> 
>> I know the rule is not followed strictly in WO/Wonder, but as a general rule 
>> in java, do not let 'this' escape the constructor.
>> 
>> http://www.javapractices.com/topic/TopicAction.do?Id=252
> 
> Indeed, you're right. Using a factory method is the better way. I just looked 
> into what insertObject() actually does and it's really more than you would 
> want to happen inside a constructor, although I never had a problem with this 
> in years. Still, I'd make a factory method in the template to be called like
> 
>       User newUser = User.newInEc( ec );

I like 

        User newUser = User.clazz.createAndInsertObject(ec);

clazz pattern rocks :-)

> 
> Side note: javapractices.com is good, but not infallible. For example, it is 
> badly misguided
> about spaces instead of tabs... ;-)     
> (http://www.javapractices.com/topic/TopicAction.do?Id=244)
> 
> Maik

Haha,  I didn't see that one. Sacrilege indeed!

Ramsey
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to