车斌的博客

专注,重复10遍


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

存盘功能--备忘录模式

发表于 2019-08-19 | 更新于 2020-03-08 | 分类于 Unity
本文字数: 15k | 阅读时长 ≈ 13 分钟

思考并回答以下问题:

  • 备忘录模式的官方定义是什么?
  • 备忘录属于哪种设计模式?为什么?
  • 动手画备忘录模式的类图。
  • 直接将数据存盘功能实现于游戏功能类中违反了单一职责原则怎么理解?
  • 对外公开成员数据是有风险的。类应该尽量减少对外显示内部的数据结构,以减少客户端有机会破坏内部成员的记录,而对外公布过多的操作方法,也容易增加与其他系统的耦合度(即依赖度)。怎么理解?
  • 定义中的“不破坏原有类封装性”怎么理解?
  • 获取一个对象的内部状态并保留在外部是什么意思?
  • Originator、Memento和Caretaker都是什么意思?
  • 没有Caretaker也可以实现备忘录模式怎么理解?那为什么要使用Caretaker呢?
  • 备忘录模式如何搭配命令模式?
阅读全文 »

成就系统--观察者模式

发表于 2019-08-18 | 更新于 2020-03-08 | 分类于 Unity
本文字数: 33k | 阅读时长 ≈ 30 分钟

思考并回答以下问题:

  • 观察者模式的官方定义是什么?
  • 观察者模式的关键词是“一对多”怎么理解?
  • 观察者模式为什么属于行为型模式?
  • 理解行为型设计模式的关键是通信怎么理解?
  • “事件发生”与“功能执行”之间不要有太多的依赖性,所以在客户端控制怎么理解?
  • 动手画观察者模式设计图。
  • 观察者模式需要list、foreach怎么理解?
  • 主题通知观察者的是主题自身的状态。不是一个单纯的触发flag让观察者去执行观察者的方法。报纸订阅例子中报社(主题)告诉订阅者的是报纸上的信息。怎么理解?
  • 旧版的问题在哪里?新版如何优化?每个游戏都要有游戏事件系统吗?
  • 只允许客户端改动代码,处理关系,其他地方只准扩展,怎么理解?想增删订阅者怎么办?
  • 全部都在PBaseDefenseGame里处理怎么理解?
  • 比原架构多加一个观察者接口是构建观察者模式最重要的一步。使用设计模式时就要新建接口,比如工厂模式,观察者模式等,一听到使用设计模式,第一反应应该是新建接口。怎么理解?
  • 如果给你一个旧的架构,让你改成观察者模式,第一件事要做什么?
  • 主题接口管理观察者,主题的内容及更新由具体主题实现。也可以省略主题接口,但是观察者接口不能省略。怎么理解?
  • 信息的推与拉有什么区别?各有什么优点和缺点?
  • 为什么要先定义游戏事件枚举(ENUM_GameEvent)?
阅读全文 »

关卡设计--责任链模式

发表于 2019-08-17 | 更新于 2020-04-09 | 分类于 Unity
本文字数: 32k | 阅读时长 ≈ 29 分钟

思考并回答以下问题:

  • 责任链模式的官方定义是什么?
  • 责任链模式属于什么类型的模式?应用场景有哪些?
  • 让每一关都是对象并加以管理。怎么理解和实现?
阅读全文 »

兵营训练单位--命令模式

发表于 2019-08-16 | 更新于 2020-03-15 | 分类于 Unity
本文字数: 19k | 阅读时长 ≈ 17 分钟

思考并回答以下问题:

  • 命令模式的官方定义是什么?类图是什么样的?
  • 命令模式是行为型模式吗?为什么?
  • 将请求封装成为对象,什么是请求?怎么封装成对象?
  • 将客户端的不同请求参数化怎么理解?
  • 如果让你用命令模式更改旧系统,第一件事就是新建一个命令接口怎么理解?
  • 命令模式的核心是命令管理器类和其维护的一个可以增删的List<Command>泛型列表,然后foreach执行。怎么理解?
阅读全文 »

重构与模式(1)

发表于 2019-08-15
本文字数: 0 | 阅读时长 ≈ 1 分钟

兵营系统及兵营信息显示

发表于 2019-08-15 | 更新于 2020-01-23 | 分类于 Unity
本文字数: 13k | 阅读时长 ≈ 12 分钟

思考并回答以下问题:

阅读全文 »

Unity3D的界面设计--组合模式

发表于 2019-08-14 | 更新于 2020-01-23 | 分类于 Unity
本文字数: 20k | 阅读时长 ≈ 18 分钟

思考并回答以下问题:

  • 组合模式的官方定义是什么?
  • 组合模式属于什么类型的模式?
  • 两种节点都是继承自同一个操作接口,能够对根节点调用的操作,同样能在叶节点上使用。是什么意思?
阅读全文 »

Unity通用场景管理器

发表于 2019-08-13
本文字数: 6.2k | 阅读时长 ≈ 6 分钟

笔者开发的Unity通用场景管理器,实现了异步场景切换、加载界面进度条显示、退回上一个场景功能

阅读全文 »

游戏属性管理功能--享元模式

发表于 2019-08-12 | 更新于 2020-01-23 | 分类于 Unity
本文字数: 25k | 阅读时长 ≈ 23 分钟

思考并回答以下问题:

  • 享元模式的官方定义是什么?
  • Flyweight的中文是“轻量级”的意思,为什么用这个词命名这个模式?
  • 享元就是共享本元的意思,怎么理解?
  • 一定要把共同点抽取成父类和接口,这样的架构就是好架构。怎么理解?
  • 属性指的是什么?IWeapon、IWeponAttr、ICharacter、ICharacterAttr接口的关系是什么?为什么要定义这么多接口?
  • 要使用享元模式,就想到新建一个工厂类。怎么理解?
  • 享元模式必须用吗?为什么?
  • 怎么看客户端的代码就知道使用了享元模式?
阅读全文 »

角色的组装--建造者模式

发表于 2019-08-12 | 更新于 2020-01-23 | 分类于 Unity
本文字数: 30k | 阅读时长 ≈ 27 分钟

思考并回答以下问题:

  • 建造者模式的官方定义是什么?类图是什么样的?四个角色是什么样子的?
  • new对象出来之后不代表实例化过程结束了,还需要给对象的属性赋值,调用对象的函数,才算是完成了复杂对象的构建。怎么理解?
  • 建造者模式是创建型模式,是为了获取到Product的实例。但是这个实例的方法有不同的表现。怎么理解?
  • 建造者模式在其他应用上可能很少用到,但是在游戏开发中,创建角色就会用到。像观察者模式在游戏程序开发中非常重要,但是在PHP中很少使用。所以开发游戏来学习设计模式是非常好的,因为游戏可以模拟现实中的一切,而PHP网站开发遇到的情况没有那么广泛。是这样吗?
  • 回答这个关键问题,没有使用建造者模式之前代码存在什么问题?必须用工厂模式和单例模式的原因都知道,建造者模式必须用吗?如果是理由是什么?
  • 建造者模式的优点是,能将复杂对象的“产生流程”与“功能实现”拆分后,让系统调整和维护变得更容易。此外,在不需更新实现者的情况下,调整产生流程的顺序就能完成装备线的更改,这也是建造者模式的另一优点。怎么理解?
  • 建造者模式的适用条件是将复杂的构建流程以一个类封装,并让不同功能的组装和设置在各自不同的类中实现。怎么理解?
阅读全文 »
1…313233…48
Chebin

Chebin

记录自己的学习过程
472 日志
14 分类
68 标签
近期文章
  • Laravel Database-Eloquent Model源码分析(下)
  • Laravel Database-Eloquent Model源码分析(上)
  • 第11章 接下来如何做
  • 第10章 K最近邻算法
  • 第9章 动态规划
© 2018 – 2020 Chebin | 站点总字数: 5m | 站点阅读时长 ≈ 76:11
由 Hexo 强力驱动
|
主题 – NexT.Pisces
0%