
设计模式
文章平均质量分 84
你一身傲骨怎能输
大家好,我是傲骨,一名热爱游戏开发的程序员,主要是游戏客户端研发方向。
我拥有计算机科学和应用数学学士学位,并在游戏行业工作了超过10年,专注于使用Unity和C#进行游戏开发。我参与过多个独立游戏项目,从概念设计到发布,积累了丰富的实践经验。
我会定期分享相关技术经验供大家学习和参考,已有的博客文章也会随着时间而逐渐更新与优化,我会尽量将每一篇文章写写满干货,让大家能阅读后有所收获,鉴于本人还在公司工作暂时不开启交流群,后期会逐渐开启交流群并且研发一些作品展示实战效果。对于一些购买我的技术专栏的表示感谢,感谢您的支持,一些专栏的文章会跟进公司项目实战经验不断的优化和更新,同时会替换掉烂文。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计原则与设计模式:烹饪与菜谱的编程哲学
设计原则与设计模式是软件设计中的核心概念,二者既有区别又紧密关联。设计原则(如单一职责、开闭原则等)是通用的指导思想,像做菜的基本法则,指导如何写出高质量代码;而设计模式(如工厂模式、策略模式等)则是解决特定问题的具体方案,如同经典菜谱,可直接复用。二者的关系体现为:设计模式是对设计原则的具体实践,例如工厂模式实现单一职责原则,策略模式体现开闭原则。正确运用二者能提升代码的可维护性、灵活性与扩展性。简言之,设计原则是"为什么",设计模式是"怎么做",二者结合才能构建健原创 2025-02-28 00:07:03 · 382 阅读 · 0 评论 -
游戏开发:访问者模式实战解析
访问者模式摘要 访问者模式将对象操作与对象本身解耦,支持在不修改元素类的情况下新增操作。通过双分派机制(元素Accept方法调用访问者的Visit方法),实现基于访问者和元素类型的动态处理。典型应用包括游戏中的Buff系统、数据导出等场景。C#示例展示了医疗巡诊(医生访问不同病人)和游戏技能系统(技能影响不同目标)的实现。关键优势在于新增操作只需扩展访问者类,而不需修改现有元素类结构。原创 2024-06-04 22:37:52 · 747 阅读 · 0 评论 -
观察者模式:轻松实现消息订阅
观察者模式是一种松耦合设计模式,通过订阅/通知机制实现对象间通信。典型应用如报社-读者场景:报社(被观察者)出版新报纸时自动通知所有订阅者(观察者),读者可随时订阅或退订。C#提供了多种实现方式:1)基础接口实现(ISubject/IObserver);2)委托事件机制;3)标准EventHandler<T>方式。该模式适用于需要动态通知的场景,如GUI事件、消息推送等,核心优势是降低对象间的直接依赖,提高系统可扩展性。代码示例展示了完整的订阅、通知和取消订阅流程,以及如何传递复杂事件参数。原创 2017-11-08 21:15:34 · 6362 阅读 · 1 评论 -
适配器模式:游戏开发的万能转换头
适配器模式是一种结构型设计模式,用于解决接口不兼容问题。通过一个"中间层"(适配器)将已有接口转换为目标接口,从而实现协同工作。常见的应用场景包括: 资源格式转换(如不同图片格式适配) 新旧系统兼容(如音效播放接口统一) 跨平台输入适配(如PC与移动端输入统一) 适配器有两种实现方式: 类适配器:通过继承源类实现(仅支持单一适配) 对象适配器:通过组合源对象实现(更灵活,推荐使用) 在Unity开发中,适配器模式常用于统一第三方库接口、处理多平台输入差异等场景。其核心优势是让现有代码无需原创 2024-12-29 04:04:01 · 720 阅读 · 0 评论 -
状态模式(State)
状态模式(State Pattern)是一种行为设计模式,允许对象在其内部状态改变时改变其行为。它非常适合用于管理对象的状态,尤其是在游戏开发中,角色的状态管理是一个常见的应用场景。通过使用状态模式,可以将每种状态的行为封装在不同的状态类中,从而使得状态切换更加灵活和可维护。状态模式主要由以下几个角色组成:以下是一个简单的状态模式的实现示例,展示了如何在游戏中管理角色的状态(如行走、攻击、受伤等)。2. 实现具体状态3. 实现上下文4. 使用状态模式状态模式的优点清晰的结构:每种状态的行为原创 2024-12-29 03:54:42 · 1107 阅读 · 0 评论 -
观察者模式(Observer)
/ 观察者接口// 主题接口。原创 2024-12-29 03:43:19 · 1080 阅读 · 0 评论 -
游戏开发必学的工厂方法模式
工厂方法模式是一种创建型设计模式,它将对象创建逻辑封装在子类中,客户端只需通过接口使用对象,无需关心具体实现。本文通过蛋糕店的生动比喻(顾客-店员-蛋糕师傅)解释其原理,并给出游戏开发中的典型应用场景(武器系统、敌人生成等)。模式结构包含产品接口、具体产品、工厂接口和具体工厂四部分,并通过C#代码示例演示了武器系统的实现。文章还比较了简单工厂、工厂方法和抽象工厂的异同,指出工厂方法符合开闭原则,适合产品变化频繁的场景,最后提供了Unity生成敌人的实际案例。原创 2024-12-29 03:34:44 · 902 阅读 · 0 评论 -
单例模式(Singleton)
单例模式在游戏开发中非常有用,尤其是当你需要一个全局管理器来控制游戏状态和资源时。通过合理地实现单例模式,可以提高代码的可维护性和可读性。接下来,我们可以深入探讨单例模式的其他应用场景、优缺点、以及在游戏开发中的最佳实践。单例模式在游戏开发中是一个强大的工具,能够有效地管理全局状态和资源。通过合理地使用单例模式,可以提高代码的可维护性和可读性。然而,开发者也需要注意单例模式的潜在缺点,并在设计时考虑最佳实践,以确保代码的质量和可扩展性。原创 2024-12-29 03:26:11 · 581 阅读 · 0 评论 -
工厂方法模式的应用
首先,我们定义一个角色接口,所有角色都需要实现这个接口。在这个示例中,我们使用工厂方法模式来创建不同类型的角色。通过定义角色接口和具体角色类,我们可以轻松地扩展新的角色类型,而不需要修改现有的代码。工厂类负责创建角色的实例,使得角色的创建过程与使用过程分离,从而提高了代码的灵活性和可维护性。我们可以进一步扩展工厂方法模式的应用,涵盖更多的游戏元素,比如武器、装备和技能等。通过这种方式,我们可以展示工厂方法模式在MMORPG游戏中的更广泛应用。首先,我们定义一个武器接口,所有武器都需要实现这个接口。原创 2024-12-29 02:36:30 · 425 阅读 · 0 评论 -
设计模式中的依赖注入
message} }依赖注入是一种强大的设计模式,可以显著提高代码的可依赖注入是一种强大的设计模式,可以显著提高代码的可维护性、可测试性和灵活性。通过依赖注入,我们可以轻松地管理对象之间的依赖关系,并在运行时动态地替换这些依赖对象。下面我们继续深入探讨依赖注入的更多细节和高级用法。void Use();");");amount");} }原创 2024-10-28 07:54:23 · 1134 阅读 · 0 评论 -
享元模式
通过这个文字处理器的示例,我们可以看到享元模式的工作原理和应用场景。享元模式通过共享大量细粒度对象来减少内存使用和提高性能。通过这个图形编辑器的示例,我们可以看到享元模式的工作原理和应用场景。享元模式通过共享大量细粒度对象来减少内存使用和提高性能。原创 2024-08-12 10:34:02 · 417 阅读 · 0 评论 -
深入浅出:游戏开发中的解释器模式
解释器模式是一种为特定语言定义语法规则并自动解析执行的设计模式,通过构建表达式树来处理自定义脚本和公式,如游戏中的NPC对话条件、属性加成等。其核心结构包括抽象表达式、终结符表达式(变量/常量)、非终结符表达式(运算符)和上下文。通过递归解释过程实现复杂表达式的解析,支持优先级和函数调用。适用于游戏开发中需要灵活解析动态表达式的场景。原创 2024-08-12 10:23:08 · 524 阅读 · 0 评论 -
原型模式
原型模式的核心思想是通过复制现有对象来创建新对象,而不是通过实例化类来创建对象。通过原型模式,可以提高对象创建的效率,减少重复代码。原型模式是一种创建型设计模式,通过复制现有对象来创建新对象,而不是通过实例化类来创建对象。通过原型模式是一种创建型设计模式,通过复制现有对象来创建新对象,而不是通过实例化类来创建对象。通过原型模式,可以提高对象创建的效率,减少重复代码,并在需要大量相似对象的场景中提供灵活性。提高对象创建效率:通过克隆现有对象来创建新对象,避免了重复的初始化操作。减少重复代码。原创 2024-08-12 10:11:33 · 963 阅读 · 0 评论 -
责任链模式
责任链模式的核心思想是将请求沿着一条链传递,直到有一个对象处理它为止。通过责任链模式,可以避免请求的发送者和接收者之间的耦合,使得系统更加灵活和可扩展。责任链模式是一种非常有用的设计模式,适用于需要多个对象处理同一请求的场景。通过责任链模式,可以降低请求的发送者和接收者之间的耦合度,增强系统的灵活性和可扩展性。原创 2024-08-09 21:55:49 · 1220 阅读 · 0 评论 -
装饰模式:游戏装备附魔实战
本文通过汉堡加配料的生动比喻,形象解释了装饰模式的核心概念:在不改变原有对象结构的情况下,动态添加功能。文章以游戏开发中的武器附魔为例,详细展示了装饰模式的C#代码实现,包括组件接口、具体组件、装饰器基类和具体装饰器的编写方法。在Unity应用部分,演示了如何用装饰模式实现角色Buff系统,体现其动态叠加功能的优势。全文用通俗易懂的语言和实用代码示例,帮助读者快速掌握装饰模式的原理和应用场景,并通过"汉堡加配料"的口诀强化记忆。原创 2024-08-09 21:52:03 · 953 阅读 · 0 评论 -
建造者模式
建造者模式的核心思想是将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。通过建造者模式,可以一步一步地构建最终的复杂对象,使得构建过程更加清晰和灵活。原创 2024-08-09 21:49:27 · 683 阅读 · 0 评论 -
桥接模式:让抽象和实现自由组合
桥接模式的核心思想是将抽象部分与实现部分分离,使它们可以独立变化。通过组合的方式,桥接模式可以灵活地扩展和维护系统。原创 2024-08-09 21:46:55 · 801 阅读 · 0 评论 -
设计模式
设计模式是软件工程中用于解决常见设计问题的通用解决方案。它们提供了可重用的设计和代码模板,帮助开发人员构建灵活、可维护和可扩展的软件系统。设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。原创 2024-08-09 21:43:33 · 675 阅读 · 0 评论 -
适配器模式
电源适配器:将美国标准插头适配到欧洲标准插座。翻译器:将英语交流适配到中文交流。USB转接头:将并行接口适配到USB接口。适配器模式的核心思想是将一个接口转换成另一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作。无论是通过组合实现的对象适配器模式,还是通过继承实现的类适配器模式,适配器模式都在实际开发中广泛应用,帮助我们解决接口不兼容的问题。原创 2024-08-09 21:42:30 · 797 阅读 · 0 评论 -
送礼物案例搞定代理模式的应用
什么是代理模式呢,其实代理模式是我们造一个代理者,然后和这个代理者去通信,然后这个代理者其实是持有其他对象的,从而我们就可以通过控制这个代理对象而控制了代理对象所持有的对象。//被接受礼物的类class SchoolGirl{ //字段名称 private string name; public string Name { get原创 2017-11-17 18:23:02 · 446 阅读 · 0 评论 -
游戏开发必学:迭代器模式解析与应用
文章摘要: 迭代器模式通过将集合遍历与集合实现分离,让客户端无需了解集合内部结构即可统一访问元素。文中以相册翻页比喻其原理,列举了游戏中的背包、怪物波次等应用场景,并给出C#代码示例(包含迭代器接口、集合实现及调用流程)。Unity中可用于敌人管理、UI遍历等场景。核心价值在于提供一致的遍历方式,屏蔽底层差异,提升代码复用性与可维护性。口诀总结强调其"统一遍历"的核心优势。(149字)原创 2017-11-17 02:16:33 · 684 阅读 · 0 评论