1.Mediator抽象及具体类
Public MustInherit Class Mediator
Public MustOverride Sub send(ByVal message As String, ByVal colleague As Colleague)
End Class
Public Class ConcreteMediaotr
Inherits Mediator
Private _Colleague1 As Concretecolleague1
Private _Colleague2 As ConcreteColleague2
Public Property Colleague1 As Concretecolleague1
Get
Return _Colleague1
End Get
Set(ByVal value As Concretecolleague1)
_Colleague1 = value
End Set
End Property
Public Property Colleague2 As ConcreteColleague2
Get
Return _Colleague2
End Get
Set(ByVal value As ConcreteColleague2)
_Colleague2 = value
End Set
End Property
Public Overrides Sub Send(ByVal message As String, ByVal colleague As Colleague)
If colleague Is Colleague1 Then
Colleague2.Notify(message)
Else
Colleague1.Notify(message)
End If
End Sub
End Class
2.同事抽象及具体灰
Public MustInherit Class Colleague
Protected myMediator As Mediator
Public Sub New(ByVal mediator As Mediator)
Me.myMediator = mediator
End Sub
End Class
Public Class Concretecolleague1
Inherits Colleague
Public Sub New(ByVal mediator As Mediator)
MyBase.New(mediator)
End Sub
Public Sub Send(ByVal message As String)
myMediator.send(message, Me)
End Sub
Public Sub Notify(ByVal message As String)
Console.WriteLine("同事1得到同事2发来的信息:" & message)
End Sub
End Class
Public Class ConcreteColleague2
Inherits Colleague
Public Sub New(ByVal mediator As Mediator)
MyBase.New(mediator)
End Sub
Public Sub Send(ByVal message As String)
myMediator.send(message, Me)
End Sub
Public Sub Notify(ByVal message As String)
Console.WriteLine("同事2得到同事1发来的信息:" & message)
End Sub
End Class
3.客户端
Module Module1
Sub Main()
Dim m As New ConcreteMediaotr
Dim c1 As New Concretecolleague1(m)
Dim c2 As New ConcreteColleague2(m)
m.Colleague1 = c1
m.Colleague2 = c2
c1.Send("吃了吗?")
c2.Send("没呢,你请客吗?")
c1.Send("没吃还不赶紧回家去吃呀。")
c2.Send("g-u-n")
Console.WriteLine("---------------")
c1.Send("吃了吗?")
c2.Send("吃过了")
c1.Send("再吃点不?我请客。")
c2.Send("有多远滚多远,有多快滚多快...")
Console.Read()
End Sub
End Module