想要开发一款王者荣耀,设计模式要搞懂

今天通过王者荣耀这款游戏,来和大家说说游戏背后的设计模式

王者荣耀目前是端游比较火爆的一款,黑马此套教程出了之后,评论区的各方大神都立下了Flag(教程见文末)

那我们先来由浅入深的了解一下游戏背后的设计模式

游戏开始的时候 10名玩家组成,5名玩家对抗领5名玩家的对战游戏,每一名玩家都可选择一名英雄来参与战斗

游戏刚开始时,自己所选择英雄与团队都会出现在自己的基地,为双方互相推塔游戏,哪一方的水晶被摧毁了就代表游戏失败

英雄的设计中中是有许多共性的内容的,首先抽取出来,英雄类包含普通攻击的方式与功能,所使用技能的攻击方式

对于英雄来说一定要具备技能,这么多的技能一定不是固定的,所以我们以技能的功能以接口的方式抽取出来,召唤师技能的某一种技能以类的方式封装好,每一种技能和接口之间就实现了关系(详见视频教程)

扫描二维码关注公众号,回复: 9003350 查看本文章

关于策略模式,官方给出的定义如下。

策略模式将可变的部分从程序中抽象出来分离成算法接口,在该接口下分别封装一系列算法实现。

这其中的设计原则有: 1.找出应用中需要变化的部分,把他们独立出来做成算法接口。(我们是把每个英雄的召唤师技能做成了算法接口,局内道具也是可以这样做的) 2.面向接口编程,而不是面向实现。(我们在使用召唤师策略接口时,并不知道它以后还会有什么样的召唤师技能) 3.多用组合,少用继承。(一个完整的英雄,是用具体的接口对象组合而成的,或者说各种接口小对象组合成了一个英雄对象)

策略模式的优点

1. 使用了组合,而不单单是继承,使得架构更灵活。

2. 富有弹性,可以较好的应对未来的变化。(开-闭原则)

3. 更好的代码复用性。(相对于继承)

策略模式的缺点

1. 增加了对象的数目(每个接口都做成了一个对象,对象数目是不是增多了)

关于单例模式,官方给出的定义如下。

Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”这其中的设计原则有: 1. 单例模式的类只提供私有的构造函数,

2. 类定义中含有一个该类的静态私有对象,

3. 该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。

单例模式的优点

1. 实例控制,单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。

2. 灵活性,因为类控制了实例化过程,所以类可以灵活更改实例化过程。

单例模式的缺点

1. 开销,虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。

2. 可能的开发混淆,使用单例对象(尤其在类库中定义的对象)时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现自己无法直接实例化此类。

学完那我们一起上星耀?好的嘛?

好的鸭~

视频地址

发布了638 篇原创文章 · 获赞 1184 · 访问量 159万+

猜你喜欢

转载自blog.csdn.net/itcast_cn/article/details/103273452