随笔分类 - 设计模式(Design pattern)
摘要:在Unity中玩转表达式树:解锁游戏逻辑的动态魔法 在Unity 2021 LTS版本中,结合Burst Compiler可以将表达式树编译后的委托性能提升至接近原生C++代码水平,特别适合高频调用的游戏系统(如物理伤害计算、AI决策等) 参考:git-amend Expression 一、为什么要
阅读全文
摘要:委托高阶应用 Func 和 Predicate 是 C# 中非常强大的工具,它们不仅可以简化代码,还能让代码更具表达力和灵活性。在掌握了它们的基础用法后,我们可以进一步探索它们的高阶应用场景,尤其是在复杂的逻辑处理、数据操作和设计模式中的应用。 以下是一些 Func 和 Predicate 的高阶应
阅读全文
摘要:《Dependency Injection Principles, Practices, and Patterns》学习笔记 前言 分层架构的优点: 职责清晰,方便分工 代码复用,扩展性良好 体积小,易维护 依赖倒置原则(Dependency Inversion Principle): 高层模块(h
阅读全文
摘要:设计模式——组合模式设计模式大话设计模式组合模式一视同仁 经典 大话设计模式 介绍 意图:将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处
阅读全文
摘要:EventManager using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.SceneManagement; /// <summary> /// 事件类型枚
阅读全文
摘要:状态机常见应用: 1.场景切换:场景是独立的,可以用不同的状态表征,比如登录场景、主场景、次场景、过渡动画场景等。可以使用状态机来约束不同场景下的行为和控制。 2.行为AI状态:《空洞骑士》中大量使用状态机来控制玩家与npc的交互战斗等,攻击状态、防守状态、死亡状态、对话状态等。 3.机关交互元素:
阅读全文
摘要:1.状态模式 当一个对象的内在状态改变时允许改变其行为,这个对象看起像是改变了其类。*状态模式主要解决的是当控制一个对象的状态转换的条件表达式过于复杂时,可以将状态的判断逻辑转移到表示不同状态的一系列类中,将复杂的判断逻辑简化。*将特定与状态相关的行为局部化,并且将不同状态的行为分割开来。*当一个...
阅读全文
摘要:1.原型模式 用原型实例指定创建对象的实例,并且通过拷贝这些原型创建新的对象。*原型模式隐藏了创建对象的细节,提高了性能。*浅复制:被复制对象的所有变量都含有与原来对象相同的值,而且所有对其他对象的引用都指向了原来的对象。*深复制:被复制对象的引用指向了新的对象,而不是原有的被引用的对象。*.NE...
阅读全文
摘要:1.代理模式 为其他对象提供代理以控制对这个对象的访问。远程代理:为一个对象在不同的地址空间提供举报代表。这样可以隐藏一个对象在不同地址空间的事实。虚拟代理:是依据需要创建开销很大的对象。通过它来存放实例化需要长时间的真是对象。安全代理:用来控制真实对象的访问时的权限。智能代理:指当调用真实对象时...
阅读全文
摘要:1.工厂方法模式 第一了一个用于创建对象的接口,让子类自己决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。*工厂方法模式即克服了简单工厂模式违反开放-封闭原则的缺点,又保留了封装对象创建过程的优点。2.实例namespace 工厂方法模式{ class Program { ...
阅读全文
摘要:1.装饰模式 动态的给一个对象添加一些额外的职责,就添加功能来说,装饰模式比生成子类更加灵活。*装饰模式是为已有功能动态添加更多功能的一种方式。*装饰模式将原有类中的核心职责与装饰功能分离。简化了原有的类即去除类重复的装饰逻辑。*装饰模式将每个装饰功能放在单独的类中并让这个类装饰它所要装饰的对象。...
阅读全文