- 论坛徽章:
- 5
|
本帖最后由 starwing83 于 2012-11-17 13:10 编辑
回复 6# egmkang
看看那些名字吧……用汉语会死啊……指定一个命名规则会死啊……有模块机制会死啊……
只要有了模块机制,重复使用代码会死啊……
return require "shop"
任何文件就都只有这一行而已。
local replication = require "replication"
local M = replication:extend()
function M: onEnter()
...
end
...
return M
代码量会成倍减少。
甚至可以更短,连那个一行的文件都可以不要。引擎里面这么写:
function M.loadShop(name)
if not M.exists(name) then
return M.new()
end
....
end
假设商店有编号,根据编号从数据库里面取对应商品。
local shop = require 'shop'
return shop.new "ID_xxxx"
怎么办呢?
非常简单!
-- 文件:data/ShopIDs.lua
return {
["岐山老店"] = ID_XXXXX,
.....
}
-- 文件:lib/shop.lua
...
local shopIDs = require 'data.ShopIDs'
...
function M.loadShop(name)
local ID = shopIDs[name]
if ID or not M.exists(name) then return M.new(ID) end
local shop require('shop.' .. name)
return shop.new()
end
这都是非常简单的抽象。自己真的把脚本当作“Write-Only”的一次性用品,完全不考虑设计,最后又怪罪Lua不好,岂有此理?! |
|