我有一臺設備要連接到,並且該連接可能是TCP/IP或串行連接。我正在編寫一個模擬配置數據的類,其中一個配置選項是關於該連接的信息。我的面向對象方法似乎錯了 - 必須檢查類
串行連接具有像CommPort,BaudRate,Parity等配置設置。TCP/IP連接將具有主機和端口。
所以看來很明顯,我將要有SerialConnectionInfo和TcpConnectionInfo類。但是這些類是設備類的成員。
我似乎應該有一些主ConnectionInfo類或接口,但問題是,雖然這兩個類在概念上相似,但它們不共享任何公共字段。因此,像下面似乎沒有任何意義:
interface IConnectionInfo {
}
class SerialConnectionInfo : IConnectionInfo {
string CommPort;
}
class TcpConnectionInfo : IConnectionInfo {
string Host;
}
class Equipment {
IConnectionInfo Connection;
}
我可以做這樣的事情,但後來在某一點上,我肯定會要檢查哪個類連接是和將它投射到適當的班級。這一切都錯了。有人有任何想法嗎?
它取決於你將如何以及在哪裏使用這些配置設置 - 你可以在IConnectionInfo中添加一個Configure()方法,這樣TcpConnectionInfo就可以使用它自己的內部設置瞭解 – Rhumborl