У меня есть класс MustInherit, который представляет собой программируемый насос в общем представлении высокого уровня.Метод базового класса с аргументом общего объекта
Тогда у меня есть функция MustOverride SetupTimeProgram в этом базовом классе.
Как я прочитал из определения переопределений, я должен иметь «Подходящие подписи. Подпись этого объявления должна точно соответствовать сигнатуре свойства или процедуры, которые она переопределяет. Это означает, что списки параметров должны иметь одинаковое количество параметров в том же порядке с одинаковыми типами данных. "
Аргумент этой функции - это программа TimeProgram, которую я должен передать насосу, но каждый насос имеет другой способ установить свою собственную программу времени. По этой причине я не могу определить на высоком уровне тип аргумента.
Так что я в базовом классе:
Public MustOverride Function SetupTimeProgram(ByRef TimeProgram As Object) As Boolean
где TimeProgram определяется как родовой объект.
Тогда в каждой отдельной реализации SetupTimeProgram я сделать что-то вроде этого:
Осуществление-A
Public Overrides Function SetupTimeProgram(ByRef Program As Object) As Boolean
Return DoSomething_A (Program.Time(), Program.Steps())
End Function
Реализация-B
Public Overrides Function SetupTimeProgram(ByRef Program As Object) As Boolean
Return DoSomething_B (Program.Line(), Program.MaxPressure, Program.MinPressure)
End Function
В другом слове аргумент полностью отличается каждая реализация.
Моя цель - создать общий метод SetupTimeProgram, чтобы написать тот же код для всех насосов. Таким образом, кто использует класс, должен заботиться только о том, чтобы передать аргумент правильным образом и форматировать.
Мне интересно, если это правильный способ сделать это.
Этот вопрос лучше подходит для сайта [CodeReview] (http://codereview.stackexchange.com). –