--[[
工厂方法模式:
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。
]]--
--[[
我的总结:
简单工厂:一个工厂生产所有的部件
工厂方法:一个工厂生产一种部件
抽象工厂:一个工厂生产几种产品
]]--
IUser = {}
function IUser:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
SqlServerUser = IUser:new()
function SqlServerUser:Insert()
print("在SQL Server中给User表增加一条记录")
end
function SqlServerUser:GetUserRecord()
print("在SQL Server中User表获取一条记录")
end
AccessUser = IUser:new()
function AccessUser:Insert()
print("在Access中给User表增加一条记录")
end
function AccessUser:GetUserRecord()
print("在Access中User表获取一条记录")
end
IDepartment = {}
function IDepartment:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
SqlServerDepartment = IDepartment:new()
function SqlServerDepartment:Insert()
print("在SQL Server中给Department表增加一条记录")
end
function SqlServerDepartment:GetDepartmentRecord()
print("在SQL Server中的Department表获取一条记录")
end
AccessDepartment = IDepartment:new()
function AccessDepartment:Insert()
print("在Access中给Department表增加一条记录")
end
function AccessDepartment:GetDepartmentRecord()
print("在Access中的Department表获取一条记录")
end
IFactory = {}
function IFactory:new(o)
o = o or {}
setmetatable(o,self)
self.__index = self
return o;
end
SqlServerFactory = IFactory:new()
function SqlServerFactory:GetUser()
return SqlServerUser:new()
end
function SqlServerFactory:GetDepartment()
return SqlServerDepartment:new()
end
AccessFactory = IFactory:new()
function AccessFactory:GetUser()
return AccessUser:new()
end
function AccessFactory:GetDepartment()
return AccessDepartment:new()
end
choice = io.read()
factory = nil
if choice == "Sqlserver" then
factory = SqlServerFactory:new()
elseif choice == "Access" then
factory = AccessFactory:new()
end
if factory ~= nil then
user = factory:GetUser()
department = factory:GetDepartment()
user:Insert()
user:GetUserRecord()
department:Insert()
department:GetDepartmentRecord()
end
输入:
Sqlserver
输出:
在SQL Server中给User表增加一条记录
在SQL Server中User表获取一条记录
在SQL Server中给Department表增加一条记录
在SQL Server中的Department表获取一条记录
简单工厂lua实现
工厂方法lua实现
交流群:315249378
如有不正确,欢迎交流讨论!
分享到:
相关推荐
6、抽象工厂模式lua实现 结构型模式 1、装饰模式lua实现 2、代理模式lua实现 3、外观模式lua实现 4、适配器模式lua实现 5、组合模式lua实现 6、桥接模式lua实现 7、享元模式lua实现 行为模式 1、策略模式lua实现 2、...
lua实现 basse64 lua lua实现 basse64 lua lua实现 basse64 lua
Lua 设计模式高清版,包含多种设计模式的lua实现。Lua 设计模式高清版,包含多种设计模式的lua实现。Lua 设计模式高清版,包含多种设计模式的lua实现。
Lua实现跟py的sleep一样的定时器功能,在倒计时结束时调用函数
cocos2d-lua 实现富文本
lua实现webservice调用 通过gsoap 实现 C/C++ 调用web service
MVVM源于MVC(Model-View-Controller)模式,期间还演化出MVP(Model-View-Presenter)模式。MVVM的出现促进了GUI前端开发和后端开发逻辑的分离,提高了前端开发效率。 MVVM的核心是数据驱动即ViewModel,ViewModel是...
解析Lua实现方法 解析Lua实现方法
cocos2dx 虚拟摇杆的lua实现
自己写的中文笔划输入法算法演示程序,用Lua实现的,大家看看有没有参考价值,呵呵
Lua实现PureMVC
NGINX + LUA实现复杂的控制
Lua实现OOP,可以继承,覆盖,sample里面实现了简单的lua类定义,并封装了简单的事件驱动机制
用LUA实现在stm32平台上的在线编程
汉诺塔是一种经典的题目,用很多种语言均可实现。 本例子是用lua实现汉诺塔
Lua语言实现特殊字符过滤,对于使用Lua开发移动端游戏的童鞋非常常用。代码亲测有效,附使用实例
《终极网络服务端编程》的lua server 实现了lua脚本处理服务端逻辑+数据库 lua服务端 c++版服务端客户端(netserver,netclient) lua服务端 就是 c++ netserver项目的lua脚本化版 运行效果 ![image]...
lua类的实现
A* 算法使用Lua实现,保存起来,以后再看。
Nginx+upload+lua实现简单文件上传服务