【发布时间】:2017-10-12 03:43:33
【问题描述】:
我有一些数据要筛选,但我想不出一个聪明的方法来做这件事。假设我有 3 种类型:
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()
}
}
}
现在,我可能有很多不同的数据类型。这意味着这个算法在最坏的情况下是二次时间的。是否有更好的解决方案、设计模式或我可以查看的任何优化?更具体地说,我正在创建某些数据类型的实例,输入是文本行。
【问题讨论】:
标签: oop design-patterns language-agnostic