Украшать класс, конструктор которого имеет параметры?
-
22-07-2019 - |
Вопрос
Я использую шаблон декоратора и украшаю класс конструктором с параметрами.
Ниже приведен конструктор класса украшения;
Public Sub New(ByVal repository As ISchedulingRespository)
Me.repository = repository
End Sub
Поскольку мой класс декоратора наследуется от декорированного класса, мне нужно объявить его конструктор следующим образом;
Public Sub New(ByVal schedulingService as SchedulingService, ByVal repository As ISchedulingRespository)
MyBase.New(repository)
Me.instance = instance
End Sub
Поэтому, когда я создаю класс декоратора, я передаю экземпляр декорации класса, а также параметр, необходимый для класса, который будет декорироваться. Это можно увидеть ниже;
Dim schedulingServiceDecorator As New SchedulingServiceEventDecorator(schedulingService, schedulingRepository)
Это не кажется мне правильным. Я что-то упустил с этим шаблоном?
Я просто не мог передать декорирующий класс в конструкторе декоратора, но каждая статья, видимая по этому шаблону, передает экземпляр декорируемого класса в декоратор.
Это случай изменения шаблона в соответствии с вашими потребностями?
Большое спасибо
Решение
В шаблоне декоратора вы должны наследовать от интерфейса из оформленного класса, а затем передать реализацию в конструктор. Похоже, вы наследуете от конкретного класса SchedulingService
.