一种GDScript语言符号的命名策略
一种GDScript语言符号的命名策略
GDScript介绍
GDScript是一种godot游戏引擎所支持的自制的python-like脚本语言,学习成本低,与引擎的功能结合完美,是godot引擎本身“All-in-one”理念所不必可少的组成部分。 在godot项目工程中,由GDScript脚本的后缀名为.gd
。
GDScript的几个设计决策
gdscript设计之初便融合于面向对象设计。一个.gd
脚本文件即为一个class,如果这个文件依附于某个godot节点,那它便是继承自那个节点类型的派生类。这种设计方式也比较完美的避开了oop程序设计的初学者滥用global变量的风险。Godot依旧设计了Autoload
这种方式来的提供那些生命周期与程序一样长的对象实例的访问。
即使是Autoload
也无法阻止任何人破坏封装性
然而,gdscript语言不设置任何access modifier
(or access specifier
). 在这里,我们无法从语言语法规则上指定成员的是否公开还是私有,是否受保护。 类的设计者创建了诸多私有成员,只是因为其中的某些没有设置setter/getter就被其他人(或者几个月后的自己)随意访问的情况几乎无法避免。对于成员函数而言,更是毫无任何办法进行保护。这个小节的标题也正是其中一个后果。
利用命名来表征自己的设计意图
因此,在我的项目中,采用了如下的命名方式来表现设计语义。在语法上没有约束力,只是为了表达更多的语义信息。
_
godot内置函数的前缀,如果在你的类中出现了这样的函数,便是进行了一次overwrite
,相当于c++中的virtual关键字,java中的默认函数覆写(overwrite)。__
双下划线,表明私有,变量与成员方法均适用。- 变量名全大写常数。
- 所有export变量均不以
__
开头
后续效果观察
TBD
参考
(转发自:原日志地址)