cara, pra te ajudar nesse quesito eu precisaria saber exatamente o q vc esta fazendo pois cada caso é um caso.
nesse caso vc esta indo "muito a fundo" na chamada do método, talvez isso não seja realmente necessário, talvez a modelagem deva ser um pouco diferente, como falei cada caso é um caso.
no geral pra esse tipo de coisa ocorre mais no seguinte nivel:
filme.getDiretor().getNome();
no exemplo a cima para resolver o acoplamento eu criaria um metodo getNomeDiretor() na classe filme que ja retornaria "diretor().getNome()", assim caso sua classe diretor mudasse vc só precisaria alterar esse método e não todos os lugares que buscassem o nome do diretor através da classe Filme.
mas como falei cada caso é um caso.
de toda a forma recomendo o curso SOILD q é muito bom, o de UML tb.