VB6-设计模式点滴

博客提及方法继承,涉及两个类 IMethod 和 NewMethod,与面向对象编程中的方法继承概念相关,属于信息技术领域程序设计方法范畴。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、单件模式

Class:SingletonClass
None.gifOption Explicit
None.gif
None.gif
Public Count As Integer
None.gif
None.gif
Private Sub Class_Initialize()
None.gif    
If gSingleton Is Nothing Then
None.gif        
Set gSingleton = Me
None.gif    
End If
None.gif
End Sub
None.gif
None.gif
Public Function GetInstance() As SingletonClass
None.gif    
Set GetInstance = gSingleton
None.gif
End Function

模块声明
None.gifPublic gSingleton As SingletonClass


2、方法继承
Class:IMethod

None.gifPublic Function SetName(Name As String)
None.gif    SetName 
= Trim(UCase(Name))
None.gif
End Function
None.gif

Class:NewMethod

None.gifImplements IMethod
None.gif
None.gif
Private Base As IMethod
None.gif
None.gif
Private Sub Class_Initialize()
None.gif    
Set Base = New IMethod
None.gif
End Sub
None.gif
None.gif
Private Sub Class_Terminate()
None.gif    
Set Base = Nothing
None.gif
End Sub
None.gif
None.gif
Private Function IMethod_SetName(Name As StringAs Variant
None.gif    IMethod_SetName 
= Base.SetName(Name)
None.gif    IMethod_SetName 
= IMethod_SetName & "0001"
None.gif
End Function

3:工厂模式:

CreateObject

4:ComUnit的一个设计模式
None.gifImplements ITestContainer
None.gif
None.gif
Public Property Get ITestContainer_TestCaseNames() As Variant()
None.gif    ITestContainer_TestCaseNames 
= Array("TestString")
None.gif
End Property
None.gif
None.gif
Public Sub ITestContainer_RunTestCase(oTestCase As ITestCase, oTestResult As TestResult)
None.gif    CallByName Me, oTestCase.Name, VbMethod, oTestResult
None.gif
End Sub
None.gif
None.gif
Public Sub TestString(oTestResult As TestResult)
None.gif
End Sub

使用TestCaseNames向外暴露自身扩展的成员。

使用类似于TestString的方法(接口参数一致),来扩展自身功能。

借助TestResult来贯穿类处理的总线。

使用TestRunner来处理符合ITestContainer接口的类。

5:观察者模式

None.gifOption Explicit
None.gif
'Ineteface Subject
None.gif
Public Sub Register(obs As Observer)
None.gif
End Sub
None.gif

None.gifOption Explicit
None.gif
None.gif
'Interface Observer
None.gif
Public Sub Notify(msg As String)
None.gif
End Sub

None.gif'frmMain
None.gif

None.gifImplements Subject
None.gif
None.gif
Dim cc As Collection
None.gif
None.gif
Private Sub Command1_Click()
None.gif    
Dim c As Observer
None.gif    
For Each c In cc
None.gif        c.Notify 
InputBox("Caption:")
None.gif    
Next
None.gif
End Sub
None.gif
None.gif
Private Sub Form_Load()
None.gif    
Set cc = New Collection
None.gif    
Dim o As frm1
None.gif    
Set o = New frm1
None.gif    o.Ini Me
None.gif    o.Show
None.gif    
None.gif    
Dim oo As frm2
None.gif    
Set oo = New frm2
None.gif    oo.Ini Me
None.gif    oo.Show
None.gif
None.gif
End Sub
None.gif
None.gif
Private Sub Subject_Register(obs As Observer)
None.gif    cc.Add obs
None.gif
End Sub
None.gif
None.gif
None.gif
'frm1
None.gif
Implements Observer
None.gif
None.gif
Public Sub Ini(s As Subject)
None.gif    s.Register Me
None.gif
End Sub
None.gif
None.gif
Private Sub Observer_Notify(msg As String)
None.gif    Me.Caption 
= msg
None.gif
End Sub
None.gif
None.gif
'frm2
None.gif

None.gifImplements Observer
None.gif
None.gif
Public Sub Ini(s As Subject)
None.gif    s.Register Me
None.gif
End Sub
None.gif
None.gif
Private Sub Observer_Notify(msg As String)
None.gif    Me.Caption 
= msg
None.gif
End Sub
None.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值