Existe uma maneira melhor de chamar o método de cada objeto derivado para uma classe base?
-
20-09-2019 - |
Pergunta
Eu tenho uma classe base onde derivar várias classes. Eu tenho outra classe que usa todas as classes derivadas de uma maneira diferente. No entanto, eu quero ligar para o Update()
Método (herdado da classe base) em cada classe derivada. Existe uma maneira fácil de fazer isso, ou eu tenho que fazer algo como:
dim a As Derived1
a.Update
dim b As Derived2
b.Update
etc...
Solução
Eu acho que a melhor maneira de fazer isso é manter os objetos derivados em uma lista de algum tipo e, em seguida, iterar sobre eles para chamar a atualização.
No código pseudo:
foreach BaseClass item in {a, b, ...}:
item.Update
Outras dicas
Você pode fazer isso através do polimorfismo com uma chamada de função que passou na classe base (pseudo-código):
Dim Dev1 as Derived1 '// This is derived from the class BaseClass
Dim Dev2 as Derived2 '// This is derived from the class BaseClass
CallUpdate(Dev1)
CallUpdate(Dev2)
Function CallUpdate(BaseClass bc)
bc.Update()
End Function
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow