Factory pattern is about Dependency Inversion Principle. You may use this
pattern to avoid dependency to concrete classes.

So the best way in your case is having Factory that constructs concrete
editors via subclassing. They work best together :)


Christian Helmbold-2 wrote:
> 
> 
> I think the difference between sub classing and static factory methods is
> a matter of taste in this case.
> 
> If I have many fields, I'd need many classes for them. So I'd group them
> in a sub package. In the case of factory methods I'd group the methods to
> create fields in a class instead of a package.
> 
> Subclass:
> 
> 1    class UserEmailField extends TextField {
> 2      public UserEmailField(String id, IModel model) {
> 3        super(id, model);
> 4        setRequired(true);
> 5        add(EmailAddressValidator.getInstance())
> 6        add(UniqueValidator.unique(SystemUser.class, "email"));
> 7      }
> 8    }
> 
> Factory method:
> 
> 1    public static TextField emailTextField(String id){
> 2        return (TextField) new TextField(id)
> 3                    .setRequired(true)
> 4                    .add(EmailAddressValidator.getInstance())
> 5                    .add(UniqueValidator.unique(SystemUser.class,
> "email"));
> 6    }
> 
> Your answer shows me, that there is no dramatically simpler way to do
> this. If you ignore the two lines for factory class declaration factory
> methods are even a bit shorter. Or is there an advantage of sub classing
> that I have missed?
> 
> Regards,
> Christian
> 
> 
> 
> ----- Ursprüngliche Mail ----
>> Von: Igor Vaynberg <[email protected]>
>> An: [email protected]
>> Gesendet: Freitag, den 8. Mai 2009, 09:08:34 Uhr
>> Betreff: Re: How to avoid code duplication on forms?
>> 
>> much simpler
>> 
>> class UserEmailField extends TextField {
>>   public UserEmailField(String id, IModel model) {
>>     super(id, model);
>>     add(EmailAddressValidator.getInstance())
>>     add(UniqueValidator.unique(SystemUser.class, "email"));
>>    }
>> }
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/How-to-avoid-code-duplication-on-forms--tp23440920p23496309.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to