[Resolvido] Singleton para Injeção de Dependências

Ultimamente tenho lido que o “Anti-Pattern” Singleton pode ser substituído por Injeção de Dependências.
Procurei por um exemplo simples porém, não encontrei.

Como poderia refatorar este trecho por Injeção de Dependência?

[code]class Singleton() {

private static String instance = null;

private Singleton() // private Construtor
{
}

public static String getInstance()
{
if(instance == null)
{
instance = //get something
}
return instance;
}
[/code]

Att.

ou por Inversão de Controle?

Segue 3 exemplos. Para entender o @Service e @Component vc deve ler a documentação do Spring, da mesmo forma o @Named e @Inject com a documentação do CDI(JEE 6).

Com singleton:

[code]class Servico {
private static Servico instance = new Servico();
private Servico()…
public static Servico getInstance()…
}

class Cliente {
private Servico servico = Servico.getInstance();
}[/code]

Com Spring:

[code]@Service
class Servico {

}

@Component
class Cliente {
@Autowired(required = true)
private Servico servico;
}[/code]

Com CDI do JEE 6:

[code]@Named
class Servico {

}

@Named
class Cliente {
@Inject
private Servico servico;
}[/code]

Muito obrigado lsjunior.

Outro link que me ajudou a entender também: http://www.arquiteturajava.com.br/livro/inversao-de-controle-cade-minha-chave-de-fenda.pdf

hummm isso me ajudou pacas vlw ai! rafaduka