課題は、comオブジェクトにアクセスする2つの異なるメインフレーム間の切り替えを可能にする最高のvb.netデザインパターンを考え出すことです。もちろん、これはすべて、ビジネスロジックを変更する必要はありません。
私がこれまでに思いついたのは、ファクトリタイプのアプローチです(以下の要約された擬似コードを参照してください)。同じメソッドとプロパティを使用し、基になるオブジェクト固有のメソッドが異なる列挙型スイッチに基づいてインスタンス化される2つのクラスがあります。
私は正しい方向に進んでいますか、それとも別のアプローチを取るべきですか?助けてくれてありがとう。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Private MFA as MFSession = New MFSession(Enums.mfaccesstype.type1)
Private Sub Form1_Load()
MFA.GotoScreen("XYZ")
End Sub
End Class
Public Class MFSession
Private SystemAccess As Object
End Property
Sub New(ByVal AccessType As Enums.mfaccesstype)
Select Case AccessType
Case Enums.mfaccesstype.type1
SystemAccess = New AccessType1()
Case Enums.mfaccesstype.type2
SystemAccess = New AccessType2()
End Select
End Sub
Public Sub GotoScreen(ByVal ScreenName As String, Optional ByVal Window As String = "")
SystemAccess.GoToScreen(ScreenName)
End Sub
End Class
Public Class AccessType1
Private Type1Object As Object = CreateObject("comobj.Type1Object")
Sub New()
'new session housekeeping
End Sub
Public Sub GotoScreen(ByVal ScreenName As String)
'specialize Type1 method for going to 'ScreenName' here
End Sub
End Class
Public Class AccessType2
Private Type2Object As Object = CreateObject("comobj.Type2Object")
Sub New()
'new session housekeeping
End Sub
Public Sub GotoScreen(ByVal ScreenName As String)
'specialized Type2 method for going to 'ScreenName' here
End Sub
End Class