重构代码，把友元关系剔除掉