VB6-设计模式点滴

系统 1349 0
1、单件模式

Class:SingletonClass
Option   Explicit

Public  Count  As   Integer

Private   Sub  Class_Initialize()
    
If  gSingleton  Is   Nothing   Then
        
Set  gSingleton  =  Me
    
End   If
End Sub

Public   Function  GetInstance()  As  SingletonClass
    
Set  GetInstance  =  gSingleton
End Function

模块声明
Public  gSingleton  As  SingletonClass


2、方法继承
Class:IMethod

Public   Function  SetName(Name  As   String )
    SetName 
=   Trim ( UCase (Name))
End Function

Class:NewMethod

Implements IMethod

Private  Base  As  IMethod

Private   Sub  Class_Initialize()
    
Set  Base  =   New  IMethod
End Sub

Private   Sub  Class_Terminate()
    
Set  Base  =   Nothing
End Sub

Private   Function  IMethod_SetName(Name  As   String As  Variant
    IMethod_SetName 
=  Base.SetName(Name)
    IMethod_SetName 
=  IMethod_SetName  &   " 0001 "
End Function

3:工厂模式:

CreateObject

4:ComUnit的一个设计模式
Implements ITestContainer

Public   Property   Get  ITestContainer_TestCaseNames()  As  Variant()
    ITestContainer_TestCaseNames 
=   Array ( " TestString " )
End Property

Public   Sub  ITestContainer_RunTestCase(oTestCase  As  ITestCase, oTestResult  As  TestResult)
    CallByName Me, oTestCase.Name, VbMethod, oTestResult
End Sub

Public   Sub  TestString(oTestResult  As  TestResult)
End Sub

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

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

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

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

5:观察者模式

Option   Explicit
' Ineteface Subject
Public   Sub  Register(obs  As  Observer)
End Sub

Option   Explicit

' Interface Observer
Public   Sub  Notify(msg  As   String )
End Sub

' frmMain

Implements Subject

Dim  cc  As  Collection

Private   Sub  Command1_Click()
    
Dim  c  As  Observer
    
For   Each  c In cc
        c.Notify 
InputBox ( " Caption: " )
    
Next
End Sub

Private   Sub  Form_Load()
    
Set  cc  =   New  Collection
    
Dim  o  As  frm1
    
Set  o  =   New  frm1
    o.Ini Me
    o.Show
    
    
Dim  oo  As  frm2
    
Set  oo  =   New  frm2
    oo.Ini Me
    oo.Show

End Sub

Private   Sub  Subject_Register(obs  As  Observer)
    cc.Add obs
End Sub


' frm1
Implements Observer

Public   Sub  Ini(s  As  Subject)
    s.Register Me
End Sub

Private   Sub  Observer_Notify(msg  As   String )
    Me.Caption 
=  msg
End Sub

' frm2

Implements Observer

Public   Sub  Ini(s  As  Subject)
    s.Register Me
End Sub

Private   Sub  Observer_Notify(msg  As   String )
    Me.Caption 
=  msg
End Sub

VB6-设计模式点滴


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论