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