VB.Net中文教程(6) 母子对象关系(5)

2008-04-10 03:08:00来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


End Sub
#Region " Windows Form Designer generated code "
.......
#End Region
Protected Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim r As New MyRoom()
MessageBox.Show(r.GetID())
End Sub
End Class

此程序输出﹕
RoomID: VIP888

一般使用委托(Delegation)来代替继承时,常用的手法。然而上述ex08.bas程序的MyRoom类别里面用到了Room名称,如果您不希望如此,可定义一个IRoom接口,供MyRoom类别使用,如下程序:

''''ex09.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
''''----------------------------------------------------
Interface IMyRoom
Function yourID() As String
End Interface

Interface IRoom
Function GetID() As String
Sub Connect(ByVal m As IMyRoom)
End Interface

Class Room
Implements IRoom
Private motherObject As IMyRoom

Public Function GetID() As String Implements IRoom.GetID
GetID = motherObject.yourID() " ***"
End Function
Public Sub Connect(ByVal m As IMyRoom) Implements IRoom.Connect
motherObject = m
End Sub
End Class

Class MyRoom
Implements IMyRoom
Private base As IRoom

Public Sub Connect(ByVal r As IRoom)
base = r
r.Connect(Me)
End Sub
Public Function yourID() As String Implements IMyRoom.yourID
yourID = "Dog888"
End Function
Public Function GetID() As String
GetID = base.GetID()
End Function
End Class
''''----------------------------------------------------
Public Class Form1
Inherits System.WinForms.Form

Public Sub New()
MyBase.New()
Form1 = Me
''''This call is required by the Win Form Designer.
InitializeComponent()
''''TODO: Add any initialization after the InitializeComponent() call
End Sub
''''Form overrides dispose to clean up the component list.
Public Overrides Sub Dispose()
MyBase.Dispose()
components.Dispose()
End Sub
#Region " Windows Form Designer generated code "
.......
#End Region

Protected Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim my As New MyRoom()
Dim base As New Room()
my.Connect(base)
MessageBox.Show(my.GetID())
End Sub
End Class

此程序输出﹕
RoomID: VIP888

Room类别里面没用到MyRoom名称,而且MyRoom类别里没有用到Room名,因此两个类别可独立设计。这是分布式组件软件,如MTS(Microsoft transaction server)等系统里的常用手法。n

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:VB.Net中文教程(5)程序多重定义

下一篇:VB.Net中文教程(8) 对象(Object)基本概念