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; }}
}
私は何が間違っているのですか?