Eu tenho uma quantidade decente de OOP com várias linguagens, mas sou bastante novo em Java.
Estou lendo vários tutoriais em que um grande número de objetos é criado no código de uma classe e estou tentando executá-los, mas construo versões das classes nos tutoriais que fazem Injeção de Dependências em vez de instanciar todos os classes próprias.
Mas o Java não é como as outras linguagens que eu usei, pois praticamente tudo é um objeto. Se eu fosse literalmente injetar tudo, o resultado seria muito confuso e difícil de seguir.
Obviamente, você não injetaria objetos String, e acho que existem outros objetos que você não injetaria, mas não tenho certeza de onde a linha deve ir. Em que momento a DI deixa de ser a coisa certa a fazer e quando começa a ser um fardo? Como você decide pragmaticamente o que injetar e o que apenas instanciar?
Para sua informação, os tutoriais que eu estou fazendo são http://edn.embarcadero.com/article/31995 e http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html para criar um cliente simples e servidor. Não estou copiando linha por linha, estou tentando criar classes equivalentes que seguem as melhores práticas