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.
