Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 开发请求和响应系统_Vb.net_Visual Studio_Design Patterns - Fatal编程技术网

Vb.net 开发请求和响应系统

Vb.net 开发请求和响应系统,vb.net,visual-studio,design-patterns,Vb.net,Visual Studio,Design Patterns,例如: 我期待着设计一个项目的请求和响应系统。请求和响应都是类 我不使用接口,因为我自己使用命令 使用示例: dim result as Response = ExecuteCommand(of Response)(new Read()) dim result as DiffResponse = ExecuteCommand(of DiffResponse)(new Read()) 设计示例: Class Command Private buffer as new List(of b

例如:

我期待着设计一个项目的请求和响应系统。请求和响应都是类

我不使用接口,因为我自己使用命令

使用示例:

dim result as Response = ExecuteCommand(of Response)(new Read())

dim result as DiffResponse = ExecuteCommand(of DiffResponse)(new Read())
设计示例:

Class Command
    Private buffer as new List(of byte)

    Sub New(byval command As byte)
        buffer.add(command);
    End Sub

    Overrideable get_request() As byte()
        Return buffer.toarray
    End Function
End Class

Class Read
    Inherits Command

    Sub New()
        MyBase.New(&h01)
    End Sub
End Class

Class Response
    Private buffer As New List(Of Byte)

    Sub New(ByVal data() As Byte)
    {
       buffer.addrange(data)
    }
End Class
现在我希望能够有多种类型的响应,例如:

Class DiffResponse
    Inherits Response

    Sub New(data As Bytes())
        MyBase.new(data)
        ' Custom processing
    End Sub
End Class
DiffResponse类可能具有自定义的getter函数和变量

现在我做了这样的事情:

Public Function ExecuteCommand(Of response)(ByVal command As Command) As response
    Return GetType(response).GetConstructor(New Type() {GetType(Byte())}).Invoke(New Object() {Me.WritePacket(command.get_request)})
End Function

这是最好的方法吗

我不清楚你想做什么。您能给出一个具体的例子说明如何使用这些类吗?dim result as DiffResponse=ExecuteCommandof DiffResponsenew命令&h1;命令能否返回任何可能的响应?e、 g.作为另一个响应的Dim结果=执行另一个响应的命令和新命令&h1;或者响应类是否以某种方式绑定到命令?不,命令是表单的数据包构造函数。自定义请求可以构建与另一个完全不同的数据包。响应类将解析数据。我愿意接受任何方法。对不起,我不明白。你的设计“感觉”不对,但我不确定。