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