C# 開發架構


軟件工程就行建築工程一樣,先架構好鋼筋,如:接口、抽象類、抽象函數、虛函數、委托等,然后再加水泥,如:實例類、實現類等

抽象類實現

public partial class Window1 : Window
{
    internal static IRtcEngine Rtc;
    public Window1()
    {
        InitializeComponent();
        Rtc = RtcEngine.CreateRtcEngine();
        Rtc.InitEventHandler(new MyEventHandler());
    }

}
//主程序接口
public abstract class IRtcEngine
{
    public abstract void InitEventHandler(IRtcEngineEventHandler engineEventHandler);
}

//主程序實現
public sealed class RtcEngine : IRtcEngine
{
    //接口初始化
    private static readonly RtcEngine[] instance = { null, null };
    public static IRtcEngine CreateRtcEngine()
    {
        return instance[0] ?? (instance[0] = new RtcEngine());
    }

    //事件接口初始化
    public override void InitEventHandler(IRtcEngineEventHandler engineEventHandler)
    {
        RtcEngineEventHandlerNative.EngineEventHandlerArr[0] = engineEventHandler;
    }

}

internal static class RtcEngineEventHandlerNative
{
    internal static IRtcEngineEventHandler[] EngineEventHandlerArr = { null, null };
    internal static void OnEvent(string @event, string data)
    {

    }
}

//事件接口
public abstract class IRtcEngineEventHandler
{
    public virtual void OnWarning(int warn, string msg)
    {
    }

    public virtual void OnError(int err, string msg)
    {
    }
}

//事件實現
internal class MyEventHandler : IRtcEngineEventHandler
{
    public override void OnWarning(int warn, string msg)
    {
        Console.WriteLine("OnOnWarning");
    }

    public override void OnError(int err, string msg)
    {
        Console.WriteLine("OnOnError");
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM