从王者荣耀看设计模式(虚拟代理模式)

一.简介
王者荣耀游戏设置了很多种游戏模式,比如:王者模拟战、无限乱斗、梦境大乱斗、火焰山大战等。当从王者荣耀的主界面进入各类模式的界面时,由于网络原因,会存在一定程度的延时(会有一个圈圈在主界面一直转啊转啊转(•́へ•́╬)),直到加载完图片,会跳转到各模式界面。
模式动机
在本实例中,当图片还没有从网上下载完成,使用虚拟代理进行代替,具体表示为:在图片没有下载到本地显示出来时,在GUI上显示:“正在加载中……请稍后”
二.虚拟代理(作为创建开销大的对象的代表)
虚拟代理是作为创建开销大的对象的代表。虚拟代理经常直到我们真正需要一个对象的时候才创建它。当对象在创建前和创建中时,由虚拟代理来扮演对象的替身。对象创建后,代理就会将请求直接委托给对象。
三.结构图

四.设计类图

五.顺序图

六.ImageProxy如何工作
⑴. 我们创建一个用来显示的ImageProxy代理,paintIcon()方法会被调用,而ImageProxy会产生线程取得图像,并创建ImageIcon.

⑵. 在某个时间点,也就是图片下载完成后,图像被返回,ImageIcon被完整实例化。

⑶. 在ImageIcon被创建后,下次调用paintIcon时,代理就委托ImageIcon进行。

最低0.47元/天 解锁文章
895

被折叠的 条评论
为什么被折叠?



