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
Public Function SetName(Name As String)
SetName = Trim(UCase(Name))
End Function
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
Class:SingletonClass













模块声明

2、方法继承
Class:IMethod




Class:NewMethod
















3:工厂模式:
CreateObject
4:ComUnit的一个设计模式












使用TestCaseNames向外暴露自身扩展的成员。
使用类似于TestString的方法(接口参数一致),来扩展自身功能。
借助TestResult来贯穿类处理的总线。
使用TestRunner来处理符合ITestContainer接口的类。
5:观察者模式
































































