Unity 逻辑层通知UI 通过接口消除他们通信的switch判断

需求如何:  用户名字长度为2-12之间,  如果错误在界面上弹出一个消息框

写烂一点

public void PostRename(string name)
    {
        if (string.IsNullOrEmpty(name))
            return;

        if (name.Length > 2 && name.Length <= 16)
        {
            UI类.打开Box框("你用户输入错误")
            return;
        }
    }

写正常一点

public void PostRename(string name, string guid)
    {
        if (string.IsNullOrEmpty(name))
            return;

        if (name.Length > 2 && name.Length <= 16)
        {
            EventManager.Noifty("消息","你用户输入错误")
            return;
        }
    }

//界面这边的方法
    public void OnRenameResult(string msg)
    {
        if (string.IsNullOrEmpty(msg))
            return;
        else
            Show(msg);     //显示错误提示
        
    }

以上这种方式会因为底层的结果增多,导致上层增加 if 或 switch对结果判断  多余的监听函数,  我们只想打印消息, 为了不破坏层的概念, 我们要写很多代码. 

可以添加一个接口消除这些问题,我们只关心的输出信息, 至于上层如何输出 这个是他们的事情.

写好一点

输出接口:

public interface IDebugPop
{
    void Box(string msg);
}

public sealed class IPopUpBoxMa
{
    private static IDebugPop mI;
    public static IDebugPop I
    {
        get
        {
            if (mI == null)
                mI = new PopUpBox();

            return mI;
        }
    }

    private static void SetIPopUpBox(IDebugPop i)
    {
        mI = i;
    }

}

public class PopUpBox : IDebugPop
{
    public void Box(string msg)
    {
          Debug.Log(msg); // 输出UnityLog
          ShowMsg(msg);   //显示一个Box框来输出
    }
}

逻辑层: 

public void PostRename(string name)
    {
        if (string.IsNullOrEmpty(name))
            return;

        if (name.Length > 2 && name.Length <= 16)
        {
            IPopUpBoxMa.I.Box(“你用户输入错误”)
            return;
        }
    }

转载于:https://www.cnblogs.com/plateFace/p/8572848.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值