1
我有一些数据,我试图筛选,我无法弄清楚这样做的一个聪明的方式。比方说,我有3种类型:避免工厂类中的多个if-else语句[语言不可知]
A,B,C和他们都当我创建一个工厂,只是创建并返回和S型的对象扩展类S.
,好像这将是非常程序化。工厂的伪代码的执行将是这样的:
class Factory {
func create_obj(input_data) -> S {
if type(input_data) is A {
return A()
}
else if type(input_data) is B {
return B()
}
else {
return C()
}
}
}
现在,我有很多不同的数据类型,它很可能只。这意味着这种算法在最坏的情况下是二次方的。是否有更好的解决方案,设计模式或我可以看到的任何优化?更具体地说,我创建了某些数据类型的实例,输入是文本行。
请注意,此解决方案意味着你总是得到相同的一个实例 – 2017-10-14 08:25:33
人们可以轻松地扩展这个解决方案总是返回一个新的实例,有几种方法来实现这一目标取决于所使用的语言。解决方案的症结在于,使用关联数组来避免工厂类中的if-else。 – CKing
是的,当然,这只是一句话 – 2017-10-14 11:08:34