Украшать класс, конструктор которого имеет параметры? - PullRequest
1 голос
/ 05 августа 2009

Я использую шаблон декоратора и украшаю класс конструктором с параметрами.

Ниже приведен конструктор класса декорирования;

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)

Это не кажется мне правильным. Я что-то упустил с этим шаблоном?

Я просто не мог передать класс декорации в конструкторе декоратора, но каждая статья, видимая по этому шаблону, передает экземпляр декорируемого класса в декоратор.

Это случай изменения шаблона в соответствии с вашими потребностями?

Большое спасибо

1 Ответ

6 голосов
/ 05 августа 2009

В Pattern Decorator вы должны наследовать от интерфейса декорированного класса и затем передавать реализацию в конструкторе. Похоже, вы наследуете от конкретного SchedulingService класса.

...