Lua的模块分析

Lua的模块分析、Lua模块隔离、Lua模块抽取

Lua支持模块化编程,可以抽取出共有的功能模块,减少代码重复性,降低耦合度。

Lua的模块由全局变量或者私有变量、函数构成,被封装在一张表里面,然后需要将这张表返回。

例子

base.lua 文件

--base.lua 模块

--添加local的局部变量都是本模块中有效,其他引用模块不能直接调用

local a=0

local Add = function()
  a = a + 1
end

local Sub = function()
  a = a - 1
end

local Get = function()
  return a
end

--Add 、 Sub 、Get都是base模块里面的局部变量函数,不能被外部引用,起到封装的作用,那么怎么隐藏这三个接口呢,并且还要让别人知道有这几个功能。

local CMD = {} -- 创建引用表CMD
CMD.Add = Add
CMD.Sub = Sub
CMD.Get = Get

function CMD.OverRideFun()
  print('我是一个空函数,是给引用我这个模块的其他模块实现的')
end


--其他模块通过 requie "base" 引用之后,就可以调用本模块中的CMD表的内容了

return CMD

sub.lua 文件

--sub.lua 模块

--引用base.lua模块

local base = require "base"

--调用base模块中的Add和Get函数
base.Add()
base.Get()

--重写base模块中的OverRideFun接口
function base.OverRideFun()
  print('我是sub模块的OverRideFun')
end

--在sub模块中添加自己特有的变量或者函数

base.IsMyVar = 1

function base.IsMyFun()
  print('this is sub's fun ...')
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值