C#设计模式 - 如何根据高度可配置的用户选择编写代码

Sha*_*awn 4 c# design-patterns

我想编写没有很多开关的代码,if/else,以及其他基于用户输入执行逻辑的典型语句.

例如,假设我有一个我要组装的Car类并调用Car.Run().更重要的是,让我们说轮胎我有4个不同轮胎类的chocie可供选择,根据用户输入.

对于,我不知道,身体类型,让我说我有10个体​​型类可供选择来构建我的汽车对象,依此类推.

使用可配置参数的数量将此示例放大1000时使用的最佳模式是什么.

甚至有这种模式吗?我看过工厂和抽象的工厂模式,他们不太适合这个,虽然看起来应该这样.

Ric*_*ber 5

我不认为工厂模式会在这里失职.我就是这样设置的.我没有看到你如何摆脱基于switch/if的逻辑,从根本上说,你的用户正在做出选择.

public class Car {
   public Engine { get; set; }
   //more properties here
}

public class EngineFactory {
  public Engine CreateEngine(EngineType type {
     switch (type) {
        case Big:
           return new BigEngine();
        case Small:
           return new SmallEngine();
     }
  }   
}

public class Engine {

}

public class BigEngine : Engine {

}

public class SmallEngine : Engine {

}

public class CarCreator {
   public _engineFactory = new EngineFactory();
   //more factories

   public Car Create() {
    Car car = new Car();

    car.Engine = _engineFactory.CreateEngine(ddlEngineType.SelectedValue);
    //more setup to follow

    return car;
   }
}
Run Code Online (Sandbox Code Playgroud)