Hi Olivier,

They are not pojo's, that's the reason I want Guice to provide the 
instances.

The model classes are wrappers, with a reference to a DAO (for now I've 
implemented it as a static reference). And you can instantiate the wrappers 
with two different constructors (one creates the wrapped object, and the 
other one initializes a wrap around an existing object). Finally, I want to 
use Guice interceptors on wrapper methods... I'm afraid that it won't be 
possible.

El miércoles, 8 de mayo de 2013 16:02:49 UTC+2, Olivier escribió:
>
> Hi Albert,
>
>
> Why don't you group your classes by domain (all services and models 
> related to one domain go in one package) rather than by functionality 
> (group all models together, group all services together)? This way you can 
> use package-private constructors. Plus it will be easier and more logical 
> for your readers to find the classes you are referring in your services and 
> you can reduce the size of your imports.
>
> Also, if ChildClass1 and ChildClass2 are pojos, which seems likely given 
> your structure, you can simply use "new" instead of going through a 
> factory. Using Guice for Pojos is like using a bazooka to kill fly when 
> good old fashioned tools still do the job properly.
>
>
> Regards,
> Olivier
>
>
> 2013/5/8 Albert Serrallé <[email protected] <javascript:>>
>
>> Hi all,
>>
>> I'm wondering what's the best design to build a provider.
>>
>> My library consists in a service package with a service class. In other 
>> package I store the model class, which I want it to have protected 
>> constructors. The model is a super-class (abstract) with some sub-classes 
>> (extending the super-class).
>>
>> */model/*
>> *    SuperClass*
>> *    ChildClass1*
>> *    ChildClass2*
>> *    ...*
>> */service/*
>> *    Service*
>>
>> I want to get instances of the sub-classes from (and only from) the 
>> service class. Guice Providers seem to be lacking the capacity of doing 
>> something like:
>>
>> *public class ModelProvider extends Provider<SuperClass>{*
>> *  public SuperClass get(Class type) {
>> *
>> *    return "new instance of type";*
>> *  }*
>> *}*
>>
>> I can't invoke get with parameters. Also, if the constructors of the 
>> model classes are private, the provider must be in the same package, which 
>> I think is a bad design for my library.
>>
>> Any advice?
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "google-guice" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/google-guice?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
>>
>
>
>
> -- 
> Olivier Grégoire 
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to