实现tap的多种方式