【发布时间】:2014-12-29 13:28:51
【问题描述】:
我要连接一台设备,该连接可以通过 TCP/IP 或串行连接。我正在编写一个对配置数据进行建模的类,其中一个配置选项是有关该连接的信息。
串行连接具有 CommPort、BaudRate、奇偶校验等配置设置。TCP/IP 连接将具有主机和端口。
所以很明显我将拥有 SerialConnectionInfo 和 TcpConnectionInfo 类。但这些类是 Equipment 类的成员。
我似乎应该有一些主 ConnectionInfo 类或接口,但问题是虽然这两个类在概念上相似,但它们不共享任何公共字段。所以像下面这样的东西似乎没有任何意义:
interface IConnectionInfo {
}
class SerialConnectionInfo : IConnectionInfo {
string CommPort;
}
class TcpConnectionInfo : IConnectionInfo {
string Host;
}
class Equipment {
IConnectionInfo Connection;
}
我可以做类似的事情,但是在某些时候我肯定要检查 Connection 是哪个类,并将其转换为正确的类。这一切都闻起来不对劲。有人有什么想法吗?
【问题讨论】:
-
这取决于您将如何以及在何处使用这些配置设置 - 您可以将
Configure()方法添加到IConnectionInfo以便TcpConnectionInfo可以使用它自己知道的内部设置跨度>
标签: c# oop data-structures