I have one question, I'll explain situation. I have Service which has field DAO. And I am making multithreaded application. Every time I make ClientHandler thread I pass it a new instance of Controller in which I have field Service. My question is should I make evry time new Service for evry new Controller I make, or I can make some ServiceProvider so evry thread (and their controller) can use the same instance of Service from that provider. In service I haven't any state (fields) except DAO field. Also I would make in ServiceProvider instatiation of Service with same instance of DAO. I am using Core Java, no beans, frameworks etc.
What is the best practice in this situation and what gives me better performance and thread safety?