使用
工厂方法设计模式+策略模式解决