用factory重构数据共享