适用builder的结构