可以定义一个结构来表示这个消息:
public struct Message {
private readonly string userName;
private readonly string content;
private readonly DateTime postDate;
public Message(string userName, string content) {
this.userName = userName;
this.content = content;
this.postDate = DateTime.Now;
}
public Message(string content) : this("System", content) { }
public string UserName {
get { return userName; }
}
public string Content {
get { return content; }
}
public DateTime PostDate {
get { return postDate; }
}
public override string ToString() {
return String.Format("{0}[{1}]:rn{2}rn", userName, postDate, content);
}
}
2.2 消息发送方 IMessageSender
从上面我们可以看出,消息发送方主要包含这样几个功能:登录、连接、发送消息、注销。另外在
连接成功或失败时还要通知用户界面,发送消息成功或失败时也需要通知用户界面,因此,我们可以让
连接和发送消息返回一个布尔类型的值,当它为真时表示连接或发送成功,反之则为失败。因为登录没
有任何的业务逻辑,仅仅是记录控件的值并进行显示,所以我不打算将它写到接口中。因此我们可以得
出它的接口大致如下:
public interface IMessageSender {
bool Connect(IPAddress ip, int port); // 连接到服务端
bool SendMessage(Message msg); // 发送用户
void SignOut(); // 注销系
统
}