都是虚拟语气,should have done比would have done语气强烈一点
would have done是过去将来完成时,是一种时态。would是will的过去式。而should have done的should,有实意,是应该的意思。表示应该做某事却没有做。
should have done 表示 应该做而没做would have done 是过去完成时