Inversion of control domain objects construction problem

Posted by Andrey on Stack Overflow See other posts from Stack Overflow or by Andrey
Published on 2009-12-07T09:10:46Z Indexed on 2010/05/18 6:11 UTC
Read the original article Hit count: 221

Hello!

As I understand IoC-container is helpful in creation of application-level objects like services and factories. But domain-level objects should be created manually. Spring's manual tells us: "Typically one does not configure fine-grained domain objects in the container, because it is usually the responsibility of DAOs and business logic to create/load domain objects."

Well. But what if my domain "fine-grained" object depends on some application-level object. For example I have an UserViewer(User user, UserConstants constants) class. There user is domain object which cannot be injected, but UserViewer also needs UserConstants which is high-level object injected by IoC-container.

I want to inject UserConstants from the IoC-container, but I also need a transient runtime parameter User here.

What is wrong with the design?

Thanks in advance!

UPDATE

It seems I was not precise enough with my question. What I really need is an example how to do this:

create instance of class UserViewer(User user, UserService service), where user is passed as the parameter and service is injected from IoC.

If I inject UserViewer viewer then how do I pass user to it?

If I create UserViewer viewer manually then how do I pass service to it?

© Stack Overflow or respective owner

Related posts about inversion-of-control

Related posts about ioc-container