それは全然カプセル化されてない
なんでそんな各クラスの詳細を知らなければならない?

Aが
Aの持ってるC → Cを管理してるD → Dの基本クラスのE → Eの持ってるB
を返すアクセス出来るインタフェースを用意すべきで
Cは
Cを管理してるD → Dの基本クラスのE → Eの持ってるB
Dは
Dの基本クラスのE → Eの持ってるB
についても同じ。基本クラスの部分は用意しなくていいけど。