문제

나는 데코레이터 패턴을 사용하고 있으며 매개 변수가있는 생성자로 클래스를 장식하고 있습니다.

아래는 클래스 장식의 생성자입니다.

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 수업.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top