这似乎是一个非常容易回答的问题,但我似乎找不到任何明显的方法。
我有一个对象的基类,它有几个派生类,这里是ClassA和ClassB。我想从用户那里获取输入并创建一个由其响应确定的类型的对象。
但是我不能只是在Select Case中放入Dim语句,因为块作用域会立即杀死对象。
我想要的是
Select Case Input
Case 1
Dim OutputObject as New ClassA()
Case 2
Dim OutputObject as New ClassB()
End Select
我一直觉得有一些明显的方法可以做到这一点,毕竟,对于整个多态性来说,这似乎很重要,但我似乎没有想到。
答案 0 :(得分:1)
这称为Factory Method。看起来更像这样
Dim OutputObject as BaseClass
Select Case Input
Case 1
OutputObject = New ClassA()
Case 2
OutputObject = New ClassB()
End Select
返回基类的位置。