我有一个库(加载项),其中包含一些在小型应用程序中使用的类.我想为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)