与编程语言相关的知识点
常用编程语言
- C语系
支持泛型 | 不支持泛型 |
---|---|
C C++ C# Java TypeScript(强类型) | JavaScript Php(弱类型) |
- 非C语系
Python Visual Basic
编程模式
- 面向过程编程(C语言)
- 面向对象编程(C++)
- 面向接口编程
- 泛型编程
- 函数式编程(特点 线程安全,利用线程安全实现并发并行)
与渲染API相关的知识点
2D底层渲染API(与操作系统相关)
- Windows GDI/GDI+ (Graphical Device Interface图形设备接口,整个windows操作系统都是由GDI/GDI+绘制出来的,它是一组C/C++的API接口)
- Linux Cairo/QT(Linux中窗口系统是分开的,不像Windows或者MacOS是紧密合在一起的,Cairo/QT都是可以跨平台运行的,包括Windows Linux MacOS IOS,但一般说的范畴的划分是按照操作系统底层原生特效,因此归为Linux中)
- MacOS/IOS Quartz2D
- Android Skia(跨平台)
- HTML5 Canvas2D(将h5的canvas独立出来,因为现在很多浏览器比如Chrome或者FireFoxes都是具有操作系统的,网页操作系统,底层也是使用Canvas2D作为绘制系统,所有网页元素都是由Canvas2D绘制的)
3D底层渲染API
- DirectX(Windows)
- OpenGL(ES) (跨平台 PC:OpenGL;移动端:OpenGL(ES))
- WebGL(用在HTML5中的Canvas元素中)
- Vulkan
- IOS Metal
与设计模式相关的知识点
创建型模式
- 工厂方法模式(由于本书面向接口编程,因此很多地方实例的产生不是用new,因为接口没有办法new出来,所以使用工厂方法创建相关的接口,精灵系统的精灵ISprite和所有基本形体IShape都是由SpriteFactory制造生产的)
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
结构型模式
- 适配器模式(树结构中为了统一线性遍历算法,将队列和栈数据结构适配成一致的操作接口)
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式(树形结构)
- 享元模式(本书重点:享元模式最大优点是减少内存。实现的精灵系统使用享元设计模式,多个精灵可以共享同一个形体,但是可以有不同的渲染状态,大小,位置和方向等)
行为型模式
- 策略模式(用到)
- 模板方法模式(Application类通过模板方法模式规定了整个入口类的运行流程)
- 观察者模式
- 迭代器模式(使用迭代器模式抽象所有具有迭代功能的类或接口,IDoom3 Tokenizer 贝塞尔曲线迭代器 树结构深度优化和广度优化的8个线性遍历迭代器)
- 职责链模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中间者模式
- 解释器模式