随笔分类 - 游戏设计模式
摘要:参考于: 《设计模式Head First》 装饰模式:动态的将责任附加到对象上。若要扩展功能,一般这是个比继承更有弹性的替代方案。 设计原则1:类应该对扩展开放,对修改关闭。 1、装饰模式原型 装饰模式原型UML 装饰模式原型代码 using System.Collections; using Sy
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原来保存的状态。 1、备忘录模式原型 备忘录模式原型UML 备忘录模式原型代码 2、备忘录模式优缺点 优点 1. 更好的封装性。 2. 可以利用
阅读全文
摘要:参考于:https://blog.csdn.net/colinandroid/article/details/81113013 《设计模式HeadFirst》 观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖都会收到通知并自动更新。 设计原则1:为了交互对象之间的
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 1、责任链模式原型 模式原型代码 2、责任链模式实例 游戏中应用:关卡系统。 3、责任链模式优缺点 优点 1. 降低耦合杜,实现发送者和请求者代码分离。 缺点 1. 请求不一定百分百被接收。 2. 系统性能会受到影响。
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 将一个请求封装为一个Command对象,从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作。 比如RTS游戏中的基地升级功能。升级是需要时间的,当我们增加好几次升级时,它就会先等待第一次升级完成后才会执行后面的升级。 如果
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 组合模式一般适用于对象的部分 整体层次分明。比如游戏中的文件夹目录结构的管理。 1、组合模式 树状结构图 组合模式例子代码 c public class Test : MonoBehaviour { private List nameList = new Li
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 享元模式:运用共享技术有效地支持大量细粒度的对象。 1、享元模式原型 享元模式原型UML图 享元模式原型代码 2、享元模式实例 假设有青铜、白银、黄金三种敌人。 创建每种敌人时,每种敌人的基本属性是相同的。比如名字、血量之类的。 这些相同的基本属性如果我们每次
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的流程不变,但每个流程实现的具体细节是经常变化的。 1、建造者模式原型 UML图 原型代码 2、建造者模式实例 在游戏中的时候,同样的也可以用在建造人物角色上
阅读全文
摘要:借鉴于: http://blog.csdn.net/jason0539/article/details/23020989 《设计模式Head First》 1、工厂模式例子原型 只介绍抽象工厂模式,更多可以看参考里大佬的博客。 假如我们需要宝马车,而且不同配置的宝马车需要不同的发动机和空调来组装成骑
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 1、原型 原型代码
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 1、模板方法模式原型 每次吃饭都包含点单、吃东西、买单几个步骤,点单和买单大同小异,最大的区别在于吃什么? 在模板方法模式中,把点单和买单的实现放在父类中。不同吃东西的具体实现则放在子类中。 模板方法模式原型UML图 模板方法模式原型代码 模板方法模式简单又常
阅读全文
摘要:借鉴于: http://www.uml.org.cn/sjms/201009092.asp 《设计模式Head First》 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 策略模式的功能是把具体的算法实现,从具体的业务处理里面独立出来,把它们
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 现在假如我们需要使用2种引擎分别绘制三种图形。 当不使用桥接模式时: 使用桥接模式 这样不仅减少了类的数量,也降低了引擎和图形类之间的耦合度。 1、桥接模式 桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式。 桥接模式原型
阅读全文
摘要:1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 方法1 不推荐的方式1:只能用于单线程。 因为有可能会出现两个线程同时判断 _instance==null 然后都创建一个实例。这就不满足单例模式了。 //sealed修饰符,不可被继承或
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 外观模式通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 1、外观模式原型 外观模式原型的UML图 外观模式代码 2、外观模式实例 外观模式实例代码 GameFacad
阅读全文
摘要:[Toc] 概述请看 "参考博客" 状态模式在游戏中可以用于切换人物动作、切换场景等。 本文介绍使用状态模式切换游戏场景。 1、状态模式原型 状态模式原型的UML图 状态模式代码 效果 2、状态模式实例:用于游戏切换场景 假如现在我们需要设置三个场景。 场景1是Logo界面,显示一下logo后会进入
阅读全文
摘要:[Toc] 概述参考请看 "参考博客" 1、中介者模式 不使用中介者模式,各个系统之间交错调用,很复杂。 使用中介者模式,从多对多变为1对1. 中介者模式代码 中介者模式和外观模式经常交叉使用,你中有我、我中有你。傻傻分不清楚。 2、中介者模式优缺点 优点 1. 降低系统间的耦合性 2. 提供系统的
阅读全文

浙公网安备 33010602011771号