我有一个任务实体,需要根据任务类型进行解析。我会将特定类型任务的逻辑封装在一个类中,但是将类型与实现解析逻辑的类相匹配的普遍接受的方法是什么?
我的第一个冲动是做一个工厂,比如:
TaskResolverFactory.GetForType(TaskType) // returns IsATaskResolver, which has a Resolve method
可能在工厂内部,一个 Case 语句或其他东西。
另一种想法是使用诸如 StructureMap
之类的东西,但我认为这对于这种情况来说太过分了 - 你同意吗?
我还缺少哪些其他方法,以及替换大型 Case/Switch 语句的普遍接受的方法是什么?
最佳答案
你是对的 - Factory
是解决这个问题的经典模式。
如果这是您需要进行此类解析的唯一地方(并且逻辑很简单),我同意 - StructureMap
是过度杀戮。
关于c# - 工厂方法还是其他模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4069501/