19暑期学习-Day10
2019-07-12 本文已影响0人
iqxtreme
内容概要
- 了解设计模式
- 学习抽象工厂模式(AbstractFactory)
- 获取《设计模式与游戏完美开发》配套源码(https://github.com/mengtest/PBaseDefense_Unity3D),训练营ftp上有(/VR训练营/学习资料/设计模式/PBaseDefense_DesignPattern.unitypackage)。
1 引入设计模式
- 快速阅读第1章
- 了解什么是设计模式
- 设计模式的用途
- 什么是接口:对象操作所定义的所有操作型构的集合被称为该对象的接口(interface)。
- 什么是多态:实现相同接口的不同类,他们的实例虽然行为不同,但对于使用者(客户)而言,确是可以相互替换的,使用者仅把它们看做具有相同接口的同一类事物。
- 接口和多态是设计模式的实现基础。
- 什么是类(class),什么是类型(type)。对应到代码中,类就是用class定义的,类型由interface定义。
2 案例研究
- 快速阅读第2章
- 简单了解各个模式出现的情景
- 今后需要经常回读此章节,慢慢深入了解各种模式的应用
3 创建型模式
- 类创建型模式,使用继承
- 对象创建型模式,依靠委托
- 2个主旋律:
1 隐藏系统中要使用的具体类
2 隐藏了实例的创建和组装 - 系统唯一知道的信息是抽象类定义的接口。
- 在以下方面有很大灵活性(即3WH):
1 创建什么(What)
2 谁来创建(Who)
3 如何创建(How)
4 何时创建(When) - 可使用差别很大的对象在静态或动态时配置同一系统。
3.1 了解迷宫案例基础
迷宫构件结构- 根据书中说明了解上图中的结构及关系。
- 了解MazeGame::CreateMaze()在实现上的不灵活之处(即硬编码)。
- 了解4种创建型模式要如何优化迷宫的创建,并在详细学习每一种模式时,回来深刻理解这里所描述的情形。
3.2 抽象工厂(AbstractFactory)
带着以下问题去阅读:
- 抽象工厂模式由工厂和产品两个基本概念构成。
- 客户是谁
- 应用于一个产品系列,而不是针对任何一个单一的产品。
3.2.1 抽象工厂结构图
抽象工厂3.2.2 对比硬编码和抽象工厂模式
硬编码的创建过程 采用抽象工厂的创建过程3.2.3 缺点
- 需要为每个系列的产品搭配一个具体的工厂,即便某两个系列产品的差异很小。
- 难以支持新种类的产品,扩展抽象工厂不容易。可以通过传入表示产品类型的参数来创建对应的产品实例,但并不一定安全。
3.2.4 配套代码
见unity工程。
3.2.5 应用场景举例
待补充
3.2.6 其它
- 如何搭配工厂方法(FactoryMethod)解决产品的创建问题。
设计模式学习顺序
- 单例模式
- 状态模式
runoob网站设计模式教程(https://www.runoob.com/design-pattern/design-pattern-tutorial.html)