VB6-设计模式点滴

1、单件模式

Class:SingletonClass
None.gif Option   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.gif Public  gSingleton  As  SingletonClass


2、方法继承
Class:IMethod

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

Class:NewMethod

None.gif Implements 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   String As  Variant
None.gif    IMethod_SetName 
=  Base.SetName(Name)
None.gif    IMethod_SetName 
=  IMethod_SetName  &   " 0001 "
None.gif
End Function

3:工厂模式:

CreateObject

4:ComUnit的一个设计模式
None.gif Implements 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.gif Option   Explicit
None.gif
' Ineteface Subject
None.gif
Public   Sub  Register(obs  As  Observer)
None.gif
End Sub
None.gif

None.gif Option   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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值