三者的区别在于时态不同,要根据想要表达的意思选择相应的时态
have been doing 是现在完成进行时,表示过去开始做而现在仍在做将来还有可能继续做的事情。
例句: I have been doing related researches. 表示我一直都在做相应的研究。
have done是现在完成时,表示对于现在来说某事已经发生过或是某事已经完结了。
例句: I have done related researches. 表示我(陈述该事时)已经完成相应的研究了。
had done是过去完成时,表示相对于过去的某个时间来说某事已经发生过或是某事已经完结了。
例句: I had done related researches (two years ago). 表示我(2年前)那时就已经完成相应的研究了。
have been doing 是现在完成进行时,表过去发生的动作一直在进行到现在.
We have reading an interesting book since last week.
have done 是现在完成时,表在过去发生的动作对现有影响.
So far I have been to Beijing twice.
had done 是过去完成时,表过去的过去.
When I got there he had gone.
The children will watch