找回密码
 立即注册
搜索
楼主: proof1

[软件] 求助:面向对象 与 面向过程 及全局变量

[复制链接]
     
发表于 2024-12-16 21:59 来自手机 | 显示全部楼层
还是用游戏引擎吧,这些事都帮你做好了,你自己填数据就行

—— 来自 鹅球 v3.1.88.3
回复

使用道具 举报

     
发表于 2024-12-17 09:35 | 显示全部楼层
40L说法很对
面向对象主要是为了能够
1.把功能模块之间解耦拆分
为什么要解耦拆分?为了把工作同时分配给更多人做
2.方便阅读
一个新人来公司 如果都是面向过程语言 就算有注释 他想加一种怪物 可能也要阅读原文很久 因为谁也不知道这一系列操作是是干什么的
但是面向对象读起来就很快

至于有人推荐你用游戏引擎 我的看法是你需要衡量你的主要目标是啥以及自己的情况
1.你有时间有兴趣学习c++和编程 那就自己造自己的方轮子 只有自己踩过坑以后 再去看最佳实践 印象更深刻 不然你直接去看别人实现好的 其一是不知道为啥他们这么做 其二甚至会忽略一些设计特别好或者做了特殊处理的地方 (有些事情只有经历过才会知道痛 比如几个月以后看着自己写的一个几百行的函数不知道啥意思)
2.你的目的是快速做出一个游戏 这些编程细节对于你的职业生涯没用 那就换个成熟的游戏引擎ue unity  也好找工作、找教程、找社区资源
回复

使用道具 举报

     
发表于 2024-12-17 10:59 | 显示全部楼层
raimouse 发表于 2024-12-15 08:49
我用的flet框架
本来就是包装成函数返回str或者None了啊
但是后续操作我是其他按钮事件触发的不是返回str ...

其实有个比较“怪异”的做法,获取到返回值之后创建一个新函数绑定到按钮事件上,写的比较抽象的情况下可以没有任何变量修改

这个范式人称fp
回复

使用道具 举报

     
发表于 2024-12-17 12:29 来自手机 | 显示全部楼层
小止 发表于 2024-12-17 10:59
其实有个比较“怪异”的做法,获取到返回值之后创建一个新函数绑定到按钮事件上,写的比较抽象的情况下可 ...

感觉懂了又完全没理解
这个返回值还是得传给函数吧
直接传参数进函数的话不会直接触发执行么?
把返回值构建成函数内变量?
还是说修改事件触发器的返回值来传这个值
回复

使用道具 举报

     
发表于 2024-12-17 12:52 | 显示全部楼层
游戏里怪物有几种,每种有几只?一般来说你这种需求是最适合面向对象的
如果只有 5 种怪物,每种 1 只,并且没有任何共性,那确实可以用全局变量。
如果觉得 getter 和 setter 啰嗦,完全可以用 struct,或者 class 里成员都设置为 public 的,没有任何问题。
回复

使用道具 举报

     
发表于 2024-12-17 13:46 | 显示全部楼层
raimouse 发表于 2024-12-17 12:29
感觉懂了又完全没理解
这个返回值还是得传给函数吧
直接传参数进函数的话不会直接触发执行么?

构建临时函数,将返回值包装在函数内传递
回复

使用道具 举报

     
发表于 2024-12-17 13:52 来自手机 | 显示全部楼层
getter,setter这种,很多语言里已经用语法糖省略到很简单的语法形式了,省到只需要在成员后面加个{set,get}就行,类外调用的时候和直接读写成员变量的语法是一模一样的,调用者可能根本不知道是直接访问成员还是调的set get,语法繁琐这方面其实都不是问题,更何况开放给外部访问的成员和内部使用的成员一般都不是同一个

—— 来自 鹅球 v3.1.88.3
回复

使用道具 举报

发表于 2024-12-17 14:00 | 显示全部楼层
看项目规模,面向 XX 的最终目的就是让代码写起来更容易,读起来更容易,bug 更少。。。

简单功能随便写写就行,上规模以后没有对项目进行一定的抽象,开发维护直接干满头包。。。

论坛助手,iPhone
回复

使用道具 举报

     
发表于 2024-12-17 14:56 来自手机 | 显示全部楼层
小止 发表于 2024-12-17 13:46
构建临时函数,将返回值包装在函数内传递

即是类似装饰器那种模式么?
函数内部再定义一个临时函数,包装返回值
然后返回这个函数并设置为按钮事件这样?
回复

使用道具 举报

     
发表于 2024-12-17 15:03 | 显示全部楼层
raimouse 发表于 2024-12-17 14:56
即是类似装饰器那种模式么?
函数内部再定义一个临时函数,包装返回值
然后返回这个函数并设置为按钮事件 ...

对的,差不多就是这个思路
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-1-22 15:48 , Processed in 0.056858 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表