SocketContext
クラスライブラリで唯一のパブリッククラスであるファサードからアクセスできるソケット通信サブシステムがあります。SocketContext
リモートエンドポンドに接続し、メッセージを送受信できます。
問題は次のとおりです。SocketContext
消費者が送信済みメッセージキューを監視したいとします(送信プロセスは非同期です)。
さて、int QueueSize {get;}
プロパティを追加する必要がありますSocketContext
が、次に何が起こるかは、キューサイズを認識している人を見つけ、それは認識していないDataSocket
クラスであるSocketContext
ため、そのプロパティをプルするには、SocketContext
このように複数回ラップする必要があります:
// DataSocket -> Connection -> SocketClient -> SocketContext
internal class DataSocket
{
public int QueueSize { get{ /* calculating and returning actual value */ }}
}
internal class Connection
{
IDataSocket _dataSocket;
int QueueSize { get{ return _dataSocket.QueueSize; }}
}
internal class SocketClient
{
IConnection _connection;
int QueueSize { get{ return _connection.QueueSize; }}
}
public class SocketContext
{
ISocketClient _client;
int QueueSize { get{ return _client.QueueSize; }}
}
私は何が間違っているのですか?