第1个回答 2017-03-20
Android Binding 提供了一个通用的框架用来实现 Android 的视图部件跟数据模型进行绑定的功能,用来实现 Android 应用程序的 MVC 模式。 Android-Binding is a MVVM (Model-View-ViewModel) framework, that helps freeing the Activity from working directly to User Interfaces. As an Activity, it's job is only to supply the ViewModel that the View requires to render the result while ViewModel is a class that with zero direct coupling with the View (and actually you might supply a different View to it). 关键特性: Declare view binding in Layout XML files. No additional files needed. Helps implements MVVM Much easier for Unit-Testing Model Validation that validates against ViewModel Support Cursor results, and you can even validate the cursor result! Sailor 是一个 Lua 语言的 MVC 编程框架。支持跨平台,兼容 mod_lua 或者 mod_pLua, Nginx 的 ngx_lua, 或者任何支持 CGI 的 Web 服务器,如 Civetweb 或者 Mongoose, 前提是必须有 CGILua 使用 Sailor 开发应用的目录结构如下: /conf - 存放配置文件 /controllers - 控制器 /layouts - 布局文件 /models - 模型 /pub - 静态文件 /runtime - 运行时生成的临时文件 /views - .lp 视图文件 示例代码: local site = {} function site.index(page) local foo = 'Hello world' local User = sailor.model("user") local u = User:new() u.username = "etiene" u.password = "a_password" local valid, err = u:validate() -- validate() will check if your attributes follow the rules! if not valid then foo = "Boohoo :(" end -- Warning: this is a tech preview and some methods of model class do not avoid SQL injections yet. page:render('index',{foo=foo,name=u.username}) -- This will render /views/site/index.lp and pass the variables 'foo' and 'name' end function site.notindex(page) page:write('Hey you!') end return site