只要逻辑跟数据分离,数据不使用继承结构,基本上就不会写出不可维护的代码
只要逻辑跟数据分离,数据不使用继承结构,基本上就不会写出不可维护的代码。
面向对象数据跟逻辑是耦合的,为了解决这种问题,搞出很多没用的技术。问题来了,一个类要用到另外一个类,为了解决两个类耦合,一个类要继承接口,另一个类构造时传入这个接口,这就是所谓的依赖接口。这造成了严重的代码阅读困难,看到这个接口看不到具体实现。而且问题又来了,一个类依赖多个类,可能要传入好几个接口,个个不知道具体实现,经常看到很多项目构造函数传78个参数。为了解决这种问题,又造出了依赖注入的技术。整个项目代码变得没有了可读性,到处是接口,找不到具体逻辑
阿中大人这个例子真的是普遍现象,可能开发人员刚开始想每个类型的人使用不同的死法所以高了个ondead的虚函数。写着写着就维护不了了,结果全写到了一个方法中。那么问题来了,ET中怎么实现虚函数的功能?不能在数据中写逻辑,意味着不能用虚函数,但是开发中又需要实现不同的unit有不同的死法。本质上虚函数不过是一个函数指针,那么我们可以根据不同的unit类型id分发到不同的逻辑中即可,跟消息分发完全一样
只要坚持两点,游戏开发就不会写得很乱。1.逻辑层去掉任何继承。2.逻辑与数据分离。逻辑由事件驱动,例如死亡事件,根据id分发到逻辑层,消息事件,数值改变事件等等。
什么纯不纯ecs,其实不太重要,ec是解决继承问题,s是解决逻辑跟数据分离问题。
什么纯不纯ecs,其实不太重要,ec是解决继承问题,s是解决逻辑跟数据分离问题。
只要坚持两点,游戏开发就不会写得很乱。1.逻辑层去掉任何继承。2.逻辑与数据分离。逻辑由事件驱动,例如死亡事件,根据id分发到逻辑层,消息事件,数值改变事件等等。
什么纯不纯ecs,其实不太重要,ec是解决继承问题,s是解决逻辑跟数据分离问题。
我是说逻辑层去掉任何继承,框架层是稳定的结构(框架层用的继承),不会有复杂的变化,用继承问题不大,面向对象的缺陷是无法应对复杂多变的逻辑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~