首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 撰寫簡易聊天程式(四):介面設計、事件委派與 Talker 組合模式

     編輯:關於C語言

IMessageSender 介面

public interface IMessageSender
{
    bool Connect(IPAddress ip, int port);
    bool SendMessage(Message msg);
    void SignOut();
}

IMessageReceiver 介面與事件委派

public delegate void MessageReceivedEventHandler(string msg);
public delegate void ClientConnectedEventHandler(IPEndPoint ep);
public delegate void ConnectionLostEventHandler(string info);

public interface IMessageReceiver
{
    event MessageReceivedEventHandler MessageReceived;
    event ConnectionLostEventHandler ClientLost;
    event ClientConnectedEventHandler ClientConnected;
    void StartListen();
    void StopListen();
}

事件委派實現觀察者模式,被動操作(收到訊息、用戶連線/斷線)自動通知 UI。

Talker 組合模式

public class Talker
{
    private IMessageReceiver receiver;
    private IMessageSender sender;
    public Talker(IMessageReceiver receiver, IMessageSender sender)
    {
        this.receiver = receiver; this.sender = sender;
    }
}

C# 無多重繼承,採組合模式讓 Talker 同時具備收發能力,符合面向介面程式設計原則。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved