photo 通过polymorphic实现