Add abstract view to resolve the problem that diff type use diff id