`

VB6-设计模式点滴

阅读更多
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 StringAs 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
分享到:
评论

相关推荐

    VB程序界面设计经验点滴

    ### VB程序界面设计经验点滴 #### 一、窗体设计 在使用VB开发软件时,设计优秀的窗体对于提升用户体验至关重要。以下是一些关键的设计原则: 1. **窗体的边框** - 默认情况下,窗体具有可调整大小的边框(`...

    自动点滴管理系统(.NET 3.5框架的WCF技术实现).rar

    .NET 3.5包含了.NET Framework的基础类库,支持C#、VB.NET等多种编程语言。在.NET 3.5中,引入了LINQ、匿名类型、Lambda表达式等新特性,增强了开发效率和代码可读性。 2. **Windows Communication Foundation (WCF...

    自动点滴管理系统

    WCF具有高度的灵活性,支持多种传输协议(如HTTP、TCP)、消息交换模式(如请求/响应、发布/订阅)以及安全性设置,确保点滴管理服务的安全可靠。 数据库设计是系统的核心部分。在这个系统中,很可能使用了SQL ...

    自动点滴管理系统(.NET 3.5框架的WCF技术实现)

    自动点滴管理系统是一款基于.NET 3.5...这个系统不仅涉及到了服务契约、数据契约等核心WCF概念,还涵盖了软件工程中的设计模式、数据库交互、用户界面设计等多个方面,充分展示了.NET技术在医疗信息化领域的应用潜力。

    自动点滴管理系统(.NET 3.5框架的WCF技术实现).

    在.NET 3.5框架下开发此系统,意味着可以利用C#或VB.NET作为主要编程语言,并借助Visual Studio 2008等开发工具进行开发。.NET 3.5框架引入了一些新特性,如LINQ(Language Integrated Query)、银光(Silverlight)...

    数据库课程设计--某医院病房计算机系统.doc

    (2)VB 部分设计 1. 新建标准 EXE 文件 2. 设计子窗体 Form main * 病房查询 * 病人管理 * 权限编辑 * 科室查询 * 医生管理 * 用户登录 3. 运行界面全部窗体显示 四、课程设计总结 在这次的课程设计过程中...

    个人网站设计报告

    - ASP.NET是微软推出的.NET框架的一部分,它不是ASP的简单升级,而是一种全新的基于.NET框架的Web开发模式。 - ASP.NET允许开发者使用多种.NET语言来开发Web应用。 **2.2 .NET框架组成** - **公共语言运行库(Common...

    ASP.NET源码——[博客空间]Q-Space 晴网个人空间系统 v2.0.zip

    Q-Space 晴网个人空间系统 v2.0 提供了稳定、高效、易于使用的博客解决方案,允许用户创建、管理和分享自己的思想与生活点滴。这个压缩包包含了该系统的源代码,可以帮助开发者深入了解其架构和功能实现,同时为二次...

    ASP.NET-[交友会员]Asp.net校友录(同学录)系统源码.151.zip

    ASP.NET不仅支持多种编程语言(如C#、VB.NET),还提供了丰富的控件和事件驱动模型,使得网页开发更加便捷。 【交友会员系统】 在“ASP.NET-[交友会员]Asp.net校友录(同学录)系统源码”中,核心是建立一个会员交互...

    .net个人空间网站源码

    可能采用设计模式如MVC、工厂模式等,提高代码复用性和可读性。 10. **API集成**:个人空间网站可能会集成第三方服务,如社交媒体分享、评论系统、地图API等,源码中会包含如何调用和处理这些API的代码。 以上是...

    社交网站源代码

    通过这些功能,用户可以建立自己的社交圈子,分享生活点滴,与他人进行深度互动。 该社交网络平台采用了微软的Web开发框架——ASP.NET。ASP.NET是.NET Framework的一部分,提供了一整套用于构建动态网站、Web应用和...

    gerenbokexitong

    这可能包括使用C#或VB.NET作为编程语言,结合ASP.NET MVC(模型-视图-控制器)模式进行开发,以实现清晰的代码结构和松耦合。同时,ASP.NET的自动状态管理、数据绑定和控件库等功能可能被充分利用,以提高开发效率和...

Global site tag (gtag.js) - Google Analytics