应该使用单个文件还是多个文件脚本?
2017-5-23 10:33:44
收藏:0
阅读:65
评论:1
我正在使用 Java 创建一个使用脚本的程序。我想知道是否应该将脚本拆分为每个脚本一个文件(更真实地说,每种脚本如“数学脚本”和“账户脚本”等),还是应该使用一个聚合文件包含所有脚本。
如果可能的话,我希望从技术角度而不是实用角度得出答案,因为这个问题已经解释了实用面的内容(分离经常修改的脚本和大型脚本)。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
就技术性能方面而言,有人可能会认为使用单个全局变量实例更有效率,因为任何库只需加载一次,而不是多次加载。然而,使用多个文件的问题实际上取决于具体情况。多个物理 lua 文件可以使用相同的 Globals 加载,或者也可以使用 Globals 实例来加载一个文件,无论是哪种方式,Globals 表结束时包含的数据量都相同,无论是否从多个文件中加载它。如果为每个文件使用多个 Globals,那么情况就不是这样了。
这类问题实际上取决于你想要在 lua 中实现的目标。使用单个 Globals 实例可以更有效地使用内存,但除此之外并不会真正提高任何性能。与单个文件相比,加载多个文件可能需要稍微更长的时间,因为需要打开和关闭文件句柄,但这只是微观优化,不值得为了将所有代码写在单个文件中而付出的麻烦,更不用说如何高效组织它了。
使用多个 Globals 的确有一些优点,每个 Globals 实例都有自己的全局存储空间,因此更改一些内容,例如重载对象元表上的操作符或覆盖函数,不会影响其他实例。如果这对你不是问题的话,我的建议可能是在多个文件中编写代码,并使用单个 Globals 实例加载它们。但是,如果你这样做,请务必适当组织所有文件的结构。如果你经常使用全局作用域,你可能会发现跟踪对象名称变得困难,并且易于通过命名相同的值意外修改来自其他文件的值。为了避免这种情况,每个文件可以在其自己的表中定义所有功能,然后这些表作为单独的模块工作,可以根据表选择功能,就像从特定文件中选择一样。
最终这并没有太大区别,但基于你的选择,你可能需要确保代码良好的组织。
使用多个 Globals 占用更多的内存,但可以让每个文件拥有其自己的自定义库,而不影响其他文件,但需要更多结构管理来保持所有文件的组织。
使用单个 Globals 占用更少的内存,但所有文件共享相同的全局作用域,使得定制库更加困难,需要更多从 Lua 软件端进行结构组织以防止名称和其他功能冲突。
例如,如果你打算让其他用户通过插件系统使用你的 Lua API 添加到你的软件中,那么你可能希望使用多个 Globals 实例,因为要求用户确保他们的代码不会与其他插件冲突是不仅危险的,而且是不必要的负担。一个经验不足的用户来创建一个插件,不适当地组织它,就可能会破坏软件或软件插件的某些部分。