加载中...

Unity___设计模式总结

模板模式

子类可以继承父类的方法

单例模式

饿汉式

游戏一开始就加载

private static T instance =new T();

懒汉式

策略模式

可以参考Sort()函数或者说回调函数
在使用sort()函数时,当系统无法自动排序时需要传递一个比较类或者比较函数给方法;

观察者模式(事件中心)

事件源(触发事件的对象),接收者(接受事件的对象),事件作为观察者

event关键字

加上关键字后只能在类内部触发

状态模式

动画中常用与状态机
游戏中有普通用户模式,VIP模式...

备忘录模式

存档,做一个类将数据存起来

class storage;
List<storage> list;

中介者模式

解决模块之间交互的问题
游戏制作过程中一般会有一个全局的管理类比如GameManager,它可以管理所有的模块,比如音乐播放,场景切换....

迭代器模式(较少)

遍历一个容器,比如写了一个二叉树,然后写一个树的迭代器,将树遍历出来

工厂模式

常用于背包,将一些类集合在一个方法里面

外观模式 (和工厂雷同)

装饰器模式

在原有基础上增加功能

组合模式

解决继承关系复杂的问题,通过添加组件的方式

  1. 编写组件类
  2. 实体添加组件

命令模式

将数据封装成一个命令类(逻辑单位)中,常用于网络通信
比如发送技能时,发送一个技能命令给服务器

MVC模式

菜鸟教程

  1. MVC 中的 M 指的是业务模型而非数据模型。
  2. 理想情况下,所有的业务逻辑都应该抽象 Model 层。
  3. 理想情况下,控制层只是负责响应视图的事件和各个业务模型间的调度。
  4. 具体情况具体分析,若是严格的遵循2、3两点也有可能增加项目不必要的复杂度,事事无绝对。一切都以降低项目复杂度为最终目的。

Controller(Module模块/控制层)

控制数据流向模型对象,并在数据变化时更新视图

Model(Data数据/业务模型)

只包含数据,初始化,一些数据操作,查找。。。。提供一些接口供控制层使用

View(视图)

既持有Controller也有Model,需要更新View,能够初始化(一般由Module进行)
持有Controller为了给服务器发消息,持有数据是为了显示

posted @ 2023-08-06 18:37  lxp_blog  阅读(34)  评论(0编辑  收藏  举报