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

被折叠的 条评论
为什么被折叠?



