小编Lou*_*uis的帖子

应用程序特定的类方法实现

我有一个库(加载项),其中包含一些在小型应用程序中使用的类.我想为Save该类提供一个方法,这取决于正在运行的应用程序.
为了解决这个问题,我试图使用策略模式(我可能会误解模式),但我对这个主题的理解是缺乏的.在运行时,我提供了一个处理保存的策略类.公共类公开一种Save方法,将其中继到提供的策略类.但为了保持一致性,我认为普通类也必须实现策略接口.

IRecord(通用类)接口:

Public Function DoSomething(): End Function
Public Function SetStrategy(ByVal Strategy As IDatabaseStrategy): End Function
Run Code Online (Sandbox Code Playgroud)

记录(公共类)实施:

Private RecordStrategy As IDatabaseStrategy
Implements IRecord
Implements IDatabaseStrategy 'Implements this interface to have Save method
Private Function IRecord_DoSomething():
    'does whatever the class is supposed to do
End Function
Private Function IRecord_SetStrategy(ByVal Strategy As IDatabaseStrategy)
    Set RecordStrategy = Strategy
End Function
Private Function IDataBaseStrategy_Save()
    RecordStrategy.Save
End Function
Run Code Online (Sandbox Code Playgroud)

战略接口和实施:

  • IDatabaseStrategy: Public Function Save():End Function

  • DataBaseStrategyA:

    Implements IDatabaseStrategy
    Private Function IDataBaseStrategy_Save()
    Debug.Print …
    Run Code Online (Sandbox Code Playgroud)

excel vba design-patterns strategy-pattern

6
推荐指数
1
解决办法
224
查看次数

标签 统计

design-patterns ×1

excel ×1

strategy-pattern ×1

vba ×1