OO编程中有时会遇到这样的问题。
我们有很对象数,水果和子类苹果,梨,香蕉....,然后我们需要根据配置文件或者输入来决定到底创建哪一个子类。
对于C++,不得不写成
或者动用创建型设计模式使得代买美观一点,消除掉这个 switch case。对于Java. dotNet可以用反射。对于Python,则可以用 exec语句。
exec(" fur =%s()"%type)
对于javascript则可以使用eval()函数。
动态语言确实很强大,不过要注意的是避免用户用特定的输入拼凑出一个可怕的语句。