外观模式
我刚洗完澡,头发还湿哒哒的,随便在浴室拿了一块毛巾擦了擦头发就把毛巾放在肩上,继续我这个独立游戏的开发,不一会儿,她就进来了,她是最不喜欢我把湿毛巾搭在肩上的,她说会有味道,于是就把我的毛巾拿走了,扔在洗衣机里面,然后站在我身后,问我:"现在你在干嘛啊"
我说:"我在重构一下代码,之前的代码调用有些混乱,这次想着用严格的外观模式进行重构".
"哦"她回答,她接着又问:"什么是外观模式啊."
我看了看她,她也看了看我,我给他拖了一把椅子过来,让她坐下来.
我说外观模式就是一个类似于"中间件"的做法,就好像有一辆汽车,它的内部有着多个十分复杂的系统,比如有动力系统,动力系统还分燃油动力和电动,但是用户不用知道这些动力的提供方式,用户只需要用钥匙开启车辆,挂上档,踩下油门,汽车就可以前进,里面还有复杂的空气循环系统,制冷,制热,内循环,外循环等,但是用户操作这些复杂的系统的时候,就是按下按钮,即可操作这些复杂的系统,而把这个思想放到游戏开发中来,同样的,游戏中会有许多模块,比如登陆模块,事件模块,关卡模块,同步模块,成就模块,等等等等,我本来想的就是将这些模块按需调用,但是发现耦合太高了,逻辑很混乱.
"什么是耦合啊?"她问.
"耦合就是一个脚本与另一个脚本之间的通讯情况,如果一个脚本对于另一个脚本的依赖比较大,那么就可以说它们之间的耦合程度高".
"哦,你现在就是各个功能块之间是直接通讯的,所以功能一多,里面的通讯就变得难以管理了"
我吃惊的看了看她,"我说你现在可越来越聪明了."
她微微一笑,说:"是呀,我其实是很聪明的"
"我说,那我考你一下,你觉得我这个外观模式该怎么设计呢?"
她吐了吐舌
"哈哈,"我柔声说道:"我们得把一些系统的类中一些初始化的方法,单独拎出来."
public class EventSys { public void Init() { Debug.Log("事件系统初始化"); } public void Update() { } } public class LevelSys { public void Init() { Debug.Log("训练系统初始化"); } public void Update() { } }
"为什么这些方法之前都带有了public呀."她问.
我说:"这是方法的修饰,public代表的是公开的,就是某个类或者方法拿到了这个类的引用,就能使用这个方法."
"那什么是修饰啊?"
"修饰就相当于这个方法的标签,通过标签来确定这个方法的属性,就像这个public,它就可以被其他类中的方法调用."
"哦"
接下来我们就开始在一个外观类中进行实例化并统一初始化.
public class Facade :MonoBehaviour { EventSys eventSys = null; LevelSys levelSys = null; public void Init() { eventSys = new EventSys(); eventSys.Init(); levelSys = new LevelSys(); levelSys.Init(); } }
"这样做完了之后这个Facade 就相当于管理者了吧?想用什么直接问它,他去找相对应得方法"
"是这样的,具体是这么来让它"找"方法的"
public class UseFacade : Facade { private void Start() { Init(); } private void Update() { Debug.Log(""); } }
"嗯嗯,这个倒是蛮简单的,但是还是不好玩."
她嘟了嘟嘴,说完起身走到浴室把毛巾仍在浴室的盆里.我呵呵一笑.她哪知道这其间的乐趣啊.".
…END…
【51CTO.com快译】 数据可视化工具不断发展,提供更强大的功能,同时改善可访问...
2021年3月24日,主题为《数据的世界,世界的数据》的星环科技2021春季新品发布会...
信息化2.0时代提出开展智慧教育创新发展行动。2019年2月,中共中央、国务院印发...
从 10.0.0 版开始,异步迭代器就出现在 Node 中了,在本文中,我们将讨论异步迭...
Docker生成新镜像版本的两种方式 There are two ways Docker can generate new m...
前提条件 请您在购买前确保已完成注册和充值。详细操作请参见 如何注册公有云管...
建站 什么 虚拟主机 够用?这要看搭建的是什么类型的网站。比如个人博客类型的网...
在Python语言中有如下3种方法: 成员方法 类方法(classmethod) 静态方法(staticm...
摘要 元旦期间 订单业务线 告知 推送系统 无法正常收发消息,作为推送系统维护者...
本文整理自直播《Hologres 数据导入/导出实践-王华峰(继儒)》 视频链接: https:/...