我一直在阅读有关策略模式的一些资料,并且有一个问题。我在下面实现了一个非常基本的控制台应用程序来解释我的要求。我读到过,在实现策略模式时,使用“switch”语句是一个危险信号。但是,在这个例子中我似乎无法避免使用switch语句。我错过了什么吗?我能够从Pencil中删除逻辑,但我的Main现在有一个switch语句。我知道我可以轻松地创建一个新的TriangleDrawer类,而不必打开Pencil类,这很好。但是,我需要打开Main以便它知道要将哪种类型的IDrawer传递给Pencil。如果我依赖用户输入,这是否正是需要做的事情?如果有一种无需switch语句即可执行此操作的方