생성자가 매개 변수가있는 클래스를 장식합니까?
-
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
수업.
제휴하지 않습니다 StackOverflow