播妞本次分享的是由Java学院讲师精心录制的视频教程,通过王者荣耀看设计模式,感兴趣的同学,切勿错过本次教程~
关于课程介绍
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”这其中的设计原则有: 1. 单例模式的类只提供私有的构造函数, 2. 类定义中含有一个该类的静态私有对象, 3. 该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。 关于策略模式,官方给出的定义如下:
策略模式将可变的部分从程序中抽象出来分离成算法接口,在该接口下分别封装一系列算法实现。
这其中的设计原则有:1.找出应用中需要变化的部分,把他们独立出来做成算法接口。(我们是把每个英雄的召唤师技能做成了算法接口,局内道具也是可以这样做的)2.面向接口编程,而不是面向实现。(我们在使用召唤师策略接口时,并不知道它以后还会有什么样的召唤师技能)3.多用组合,少用继承。(一个完整的英雄,是用具体的接口对象组合而成的,或者说各种接口小对象组合成了一个英雄对象)
策略模式的优点
1. 使用了组合,而不单单是继承,使得架构更灵活。
2. 富有弹性,可以较好的应对未来的变化。(开-闭原则)
3. 更好的代码复用性。(相对于继承)
策略模式的缺点
1. 增加了对象的数目(每个接口都做成了一个对象,对象数目是不是增多了)
关于单例模式,官方给出的定义如下:
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”这其中的设计原则有:1. 单例模式的类只提供私有的构造函数,
2. 类定义中含有一个该类的静态私有对象,
3. 该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。
单例模式的优点
1. 实例控制,单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
2. 灵活性,因为类控制了实例化过程,所以类可以灵活更改实例化过程。
单例模式的缺点
1. 开销,虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍然需要一些开销。可以通过使用静态初始化解决此问题。
2. 可能的开发混淆,使用单例对象(尤其在类库中定义的对象)时,开发人员必须记住自己不能使用new关键字实例化对象。因为可能无法访问库源代码,因此应用程序开发人员可能会意外发现自己无法直接实例化此类。
网盘资料截图展示:
网盘资料下载链接已添加(回帖可见)
|