새 CD 객체를 만들 때마다 스택 오버플로가 발생합니다. mediaFactory에 매개 변수를 전달하여 어떤 유형의 미디어가 만들어 졌는지 확인할 수 있기를 바랍니다. 나는이 문제가 될 수있는 이유는무한 루프가 발생하지 않는 팩터 리 객체를 만드는 방법
감사합니다 "CD = 새 CD() 희미한 미디어"이 작업을 수행 할 때 누군가가 지적 할 수
Public MustInherit Class MediaFactory
Inherits MediaContext
Implements IMedia
Public Sub New(ByVal typeId As Integer)
MyBase.new()
_mediaTypeId = typeId
End Sub
Private _mediaTypeId As Integer
Public Property mediaTypeId() As Integer Implements IMedia.mediaTypeId
Get
Return _mediaTypeId
End Get
Set(ByVal value As Integer)
_mediaTypeId = value
End Set
End Property
End Class
Public Class CD
Inherits MediaFactory
Implements IMedia
Public Sub New()
MyBase.New(1)
End Sub
Public Sub New(ByVal name As String)
MyBase.New(1)
MyBase.title = name
End Sub
End Class
Public Class MediaContext
Private Shared _strategies As New Dictionary(Of MediaEnum, IMedia)()
Public Sub New()
_strategies.Add(MediaEnum.CD, New CD())
End Sub
Public Sub New(ByVal name As String)
_title = name
End Sub
Private _title As String
Public Property title() As String
Get
Return _title
End Get
Set(ByVal value As String)
_title = value
End Set
End Property
End Class
MeidaFactory의 기본 클래스는 무엇입니까? – taylonr
기본 클래스에서 MyBase.new()를 사용하고 싶습니까? –
아마 MediaFactory 생성자 인 코드 스 니펫에 없습니다. 디버깅은 간단하고 단일 단계 만 수행하면 즉시 볼 수 있습니다. –