Boas práticas na criação de um Session Bean

Bom dia Senhores(as),

Tenho o seguinte cenário:

Uma classe de serviço que possui outras classes, cada uma com sua responsabilidade.

Como no exemplo abaixo:

@Stateless
public class XService implements XLocal {

	@Inject
	private A a;

	@Inject
	private B b;

	@Inject
	private C c;

	@Inject
	private D d;

	@Inject
	private E e;
	
	@Inject
	private F f;	

	@Inject
	private G g;
	
	@Inject
	private H h;

	@TransactionAttribute(TransactionAttributeType.REQUIRED)
	public X metodo1(X x, Y x) throws Exception {
		a.fazer();
		b.fazer();
		c.fazer();
		d.fazer();
	}
	
	@TransactionAttribute(TransactionAttributeType.REQUIRED)
	public void metodo2(X x) throws Exception {
		a.fazer();
		e.fazer();
		f.fazer();
		g.fazer();
	}
	
	@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
	public X metodo3(X x, Y x) throws Exception {
		h.fazer();
	}
	
}

Por exemplo, quando chamo o metodo3 muitas dessas classes que compõem o serviço não precisariam ser instanciadas.
Que alternativa seria interessante pra resolver esse problema?

Espero ter sido claro na dúvida.

Obrigado.