—— 来自 鹅球 v3.1.88.3 40L说法很对
面向对象主要是为了能够
1.把功能模块之间解耦拆分
为什么要解耦拆分?为了把工作同时分配给更多人做
2.方便阅读
一个新人来公司 如果都是面向过程语言 就算有注释 他想加一种怪物 可能也要阅读原文很久 因为谁也不知道这一系列操作是是干什么的
但是面向对象读起来就很快
至于有人推荐你用游戏引擎 我的看法是你需要衡量你的主要目标是啥以及自己的情况
1.你有时间有兴趣学习c++和编程 那就自己造自己的方轮子 只有自己踩过坑以后 再去看最佳实践 印象更深刻 不然你直接去看别人实现好的 其一是不知道为啥他们这么做 其二甚至会忽略一些设计特别好或者做了特殊处理的地方 (有些事情只有经历过才会知道痛 比如几个月以后看着自己写的一个几百行的函数不知道啥意思)
2.你的目的是快速做出一个游戏 这些编程细节对于你的职业生涯没用 那就换个成熟的游戏引擎ue unity也好找工作、找教程、找社区资源
raimouse 发表于 2024-12-15 08:49
我用的flet框架
本来就是包装成函数返回str或者None了啊
但是后续操作我是其他按钮事件触发的不是返回str ...
其实有个比较“怪异”的做法,获取到返回值之后创建一个新函数绑定到按钮事件上,写的比较抽象的情况下可以没有任何变量修改
这个范式人称fp 小止 发表于 2024-12-17 10:59
其实有个比较“怪异”的做法,获取到返回值之后创建一个新函数绑定到按钮事件上,写的比较抽象的情况下可 ...
感觉懂了又完全没理解
这个返回值还是得传给函数吧
直接传参数进函数的话不会直接触发执行么?
把返回值构建成函数内变量?
还是说修改事件触发器的返回值来传这个值
游戏里怪物有几种,每种有几只?一般来说你这种需求是最适合面向对象的
如果只有 5 种怪物,每种 1 只,并且没有任何共性,那确实可以用全局变量。
如果觉得 getter 和 setter 啰嗦,完全可以用 struct,或者 class 里成员都设置为 public 的,没有任何问题。 raimouse 发表于 2024-12-17 12:29
感觉懂了又完全没理解
这个返回值还是得传给函数吧
直接传参数进函数的话不会直接触发执行么?
构建临时函数,将返回值包装在函数内传递 getter,setter这种,很多语言里已经用语法糖省略到很简单的语法形式了,省到只需要在成员后面加个{set,get}就行,类外调用的时候和直接读写成员变量的语法是一模一样的,调用者可能根本不知道是直接访问成员还是调的set get,语法繁琐这方面其实都不是问题,更何况开放给外部访问的成员和内部使用的成员一般都不是同一个
—— 来自 鹅球 v3.1.88.3 看项目规模,面向 XX 的最终目的就是让代码写起来更容易,读起来更容易,bug 更少。。。
简单功能随便写写就行,上规模以后没有对项目进行一定的抽象,开发维护直接干满头包。。。
论坛助手,iPhone 小止 发表于 2024-12-17 13:46
构建临时函数,将返回值包装在函数内传递
即是类似装饰器那种模式么?
函数内部再定义一个临时函数,包装返回值
然后返回这个函数并设置为按钮事件这样? raimouse 发表于 2024-12-17 14:56
即是类似装饰器那种模式么?
函数内部再定义一个临时函数,包装返回值
然后返回这个函数并设置为按钮事件 ...
对的,差不多就是这个思路
页:
1
[2]