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]>

> 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].
> 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.
>
>
>



-- 
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