Pregunta

Estoy usando el patrón decorador y estoy decorando una clase con un constructor que tiene parámetros.

A continuación se muestra el constructor de la clase de decoración;

Public Sub New(ByVal repository As ISchedulingRespository)

  Me.repository = repository

  End Sub

Como mi clase de decorador hereda de la clase decorada, necesito declarar su constructor de la siguiente manera;

 Public Sub New(ByVal schedulingService as SchedulingService, ByVal repository As ISchedulingRespository)

        MyBase.New(repository)
        Me.instance = instance
   End Sub

Entonces, cuando creo la clase de decorador, paso una instancia de la clase de decorador, así como el parámetro requerido para que la clase vaya a decorar. Esto se puede ver a continuación;

 Dim schedulingServiceDecorator As New SchedulingServiceEventDecorator(schedulingService, schedulingRepository)

Esto no me parece correcto. ¿Me estoy perdiendo algo con este patrón?

Simplemente no podría pasar en la clase de decoración en el constructor del decorador, pero cada artículo visto en este patrón pasa una instancia de la clase que se está decorando, al decorador.

¿Es este un caso de modificación de un patrón para satisfacer sus necesidades?

Muchas gracias

¿Fue útil?

Solución

En el Patrón de decorador , se supone que debe heredar de la interfaz de la clase decorada, y luego pasa la implementación en el constructor. Parece que está heredando de la clase concreta SchedulingService .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top