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;
- }
- }
Unity 逻辑层通知UI 通过接口消除他们通信的switch判断的更多相关文章
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2) ...
- C# .NET 逻辑层的框架设计
前述:在我的了解中,一个大项目的逻辑层是不可捉摸的,对于不同项目或场景都是不同的逻辑.先说明,我的想法是对逻辑层类结构,以及如何操作逻辑的方法进行抽象的封装.并且考虑将不同类,或者不同程序集中的逻辑方 ...
- Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层【转】
转自:http://blog.csdn.net/droidphone/article/details/7497787 在本系列文章的第一篇:Linux中断(interrupt)子系统之一:中断系统基本 ...
- 从零开始编写自己的C#框架(14)——T4模板在逻辑层中的应用(三)
原本关于T4模板原想分5个章节详细解说的,不过因为最近比较忙,也不想将整个系列时间拉得太长,所以就将它们整合在一块了,可能会有很多细节没有讲到,希望大家自己对着代码与模板去研究. 本章代码量会比较大, ...
- C#多态“说来也说”——逻辑层BLL中的多态使用
本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/5861842.html 昨天晚上,有个朋友说学了好久,依然没搞 ...
- 9.1.3 .net framework通过业务逻辑层自动生成WebApi的做法
首先需要说明的是这是.net framework的一个组件,而不是针对.net core的.目前工作比较忙,因此.net core的转换正在编写过程中,有了实现会第一时间贴出来. 接下来进入正题.对于 ...
- Python开发入门与实战12-业务逻辑层
12. Biz业务层 前面的章节我们把大量的业务函数都放在了views.py里,按照目前这一的写法,当我们编写的系统复杂较高时,我们的views.py将会越来越复杂,大量的业务函数包含其中使其成为一个 ...
- 表现层(jsp)、持久层(类似dao)、业务层(逻辑层、service层)、模型(javabean)、控制层(action)
转自:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html 为了实现web层(struts)和持久层(Hibernate)之间的松 ...
- 表现层(jsp)、持久层(dao)、业务层(逻辑层、service)
转自:http://www.blogjava.net/jiabao/archive/2007/04/08/109189.html 为了实现web层(struts)和持久层(Hibernate)之间的松 ...
随机推荐
- jdbc 回顾
JDBC实现基本的CRUD示例 private static void insertTest() throws SQLException { String dbURL = "jdbc:mys ...
- CSU - 1337 (搞笑版费马大定理 )
费马大定理:当n>2时,不定方程an+bn=cn没有正整数解.比如a3+b3=c3没有正整数解.为了活跃气氛,我们不妨来个搞笑版:把方程改成a3+b3=c3,这样就有解了,比如a=4, b=9, ...
- 【POJ 2409】 Let it Bead(置换、burnside引理)
Let it Bead "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. ...
- 调用sort段错误问题
问题:sort的比较函数实现有问题导致进程调用sort时core了. 结论:特别要注意,sort的比较函数必须遵循严格弱排序(strict weak ordering)的规则. 这是最近在工作中遇 ...
- 【欧拉回路】【欧拉路径】【Fleury算法】CDOJ1634 记得小苹初见,两重心字罗衣
Fleury算法看这里 http://hihocoder.com/problemset/problem/1181 把每个点看成边,每个横纵坐标看成一个点,得到一个无向图. 如果新图中每个点的度都是偶数 ...
- Java NIO入门小例(短连接:客户端和服务器一问一答)
例子中有些写法参考自Netty4源码,建议在实际运用中采用Netty,而非原生的Java NIO(小心epoll空转). 1. 服务器端 public class NioServer { static ...
- [转]tx:advice标签简介
<Spring高级程序设计>第16章事务管理,通过本章的学习,你知道了如何使用Spring去管理事务,而这种方式几乎不会对你的源代码产生任何影响.你现在知道了如何使用本地和全局事务,并知道 ...
- [转]spring property标签中的 ref属性和ref 标签有什么不同
spring property标签中的 ref属性和ref 标签有什么不同? 如下:<property name="a" ref="b" /> sp ...
- Android SO(动态链接库)UPX加固指南
前言 随着移动互联网的爆发性增长,人们对移动应用的需求变得越来越复杂,企业在带给用户众多便利和享受的同时,却容易忽视应用自身的安全性问题,一旦遭受攻击,就会给企业和用户的经济或声誉带来影响.本文主要是 ...
- Win32 error code message
http://fit.c2.com/fit/files/LispPlatform/lisp/clisp-2.28/src/errwin32.d # Calls a function, passing ...