增加了策略模式