【发布时间】:2012-12-05 00:22:34
【问题描述】:
我有一个可以通过SocketContext 门面访问的套接字通信子系统,这是类库中唯一的公共类。 SocketContext 允许您连接到远程端点,发送和接收消息。
问题如下:假设SocketContext消费者想要监控发送的消息队列(发送过程是异步的)。
好吧,我们需要在SocketContext 中添加int QueueSize {get;} 属性,但接下来我们要找到知道队列大小的人,这是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; }}
}
我做错了什么?
【问题讨论】:
标签: c# design-patterns architecture