내 프로젝트에서 인터페이스를 더 많이 사용하려고합니다. 내가 온라인에서 보았던 많은 예제들은 경쾌하지만 도움이된다. 아래의 코드에서 참조하시기 바랍니다 :인터페이스에 대한 .net 디자인 패턴
Public Class Animal
Implements Eatable
Public Overridable Sub Eat() Implements Eatable.Eat
MsgBox("Animal Eat no arguement")
End Sub
Public Overridable Overloads Sub Eat(ByVal food As String) Implements Eatable.Eat
MsgBox("Animal Eat food arguement")
End Sub
End Class
Public Class Horse
Inherits Animal
Implements Eatable
Public Overrides Sub Eat()
MsgBox("Horse Eat no arguement")
End Sub
Public Overloads Sub Eat(ByVal food As String)
MsgBox("Horse Eat food arguement")
End Sub
End Class
Public Interface Eatable
Sub Eat()
Sub Eat(ByVal localEat As String)
End Interface
Public Class Form1
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
TestFunction(1)
End Sub
Public Sub TestFunction(ByVal intTest As Integer)
Dim e1 As Eatable
If intTest = 1 Then
e1 = New Horse
Else
e1 = New Animal
End If
'Functionality specific to e1 from here
End Sub
End Class
나는 내가 즉 TestFunction intTest의 값에 따라 말 또는 동물로 E1 인스턴스에서 수행 한 방법으로 다형성을 사용하는 것은 좋은 방법이 어떤 곳을 읽었다. 이 경우 누군가가 디자인 패턴을 추천 할 수 있습니까? 이 코드 근본적으로 아무 문제가 없습니다
문제는 e1이 Eatable 객체이고 Horse를 사용하여 그것을 만들 때 '먹기 (문자열로)'를 사용할 수 없습니다. – LarsTech
@LarsTech,이 버그를 삭제했습니다. 이것은 내가 얻고있는 것이 아니었다. TestFunction에서했던 것처럼 인터페이스를 사용하는 것이 옳은지, 즉 인스턴스를 생성 할 객체를 런타임에서 결정할 수 있습니까? – w0051977
괜찮아 보인다. 문제는 특정 문제를 다루지 않기 때문에 대답하기가 어렵습니다. 당신의'TestFunction'는 기본적으로 "나는 오직 먹을 수있는 객체 만 다루고 싶다"라고 말합니다. – LarsTech