关于Pure MVC的一些个人理解(基于IOS开发)
程序员文章站
2022-04-02 10:25:43
...
前言:本篇所写的名词很多可以在下面链接中找到:
初识Prue MVC(基于IOS的文件夹创建、Storyboary的使用及其它)
先附上架构图~~~
1、Model、View、Controller 的作用:
- Model 中存放数据、访问网络
- View 中显示页面
- Controller 中写业务逻辑
2、Delegate (代理模式)的理解:
在 view 中,每一个页面被写成两个子页面:
例如:LoginV 和 LoginM 代理即:
在 LoginV 中定义代理:
protocol LoginVDelegate: class {
func viewDidLoad()
}
weak var _delegate: LoginVDelegate? // 会把 LoginMediator 赋值过来
在 LoginM 中继承自 LoginVDelegate 并:
override func onRegister() {
// 把自己赋值给 View,便于 View 在 viewDidLoad 时调用 LoginMediator 中的 viewDidLoad 函数
view._delegate = self
}
3、一个页面包括两个子文件:V 和 M
- V:真正的视图
- M:该视图的逻辑代码(一个 M 代表一个 Mediator)
4、Command(命令者模式):里面是方法,不需要实例化
5、程序的起始点是:AppFacade.swift 文件,主要的代码如下:
class AppFacade: Facade{
/**
Register Commands with the Controller
*/
override func initializeController() {
super.initializeController()
registerCommand(AppCmd.STARTUP) { AppCmd() }
}
/**
Singleton Factory Method
*/
class func getInstance() -> AppFacade {
return super.getInstance { AppFacade() } as! AppFacade
}
/**
Start the application
*/
func startup(app: AppV) {
// 把 AppVC 的实例 app 做为 viewComponent 传给 StartupCmd,再在 PrepViewCmd 中完成与 AppMediator 的绑定
sendNotification(AppCmd.STARTUP, body: app)
}
}
6、IOS 创建对象不需要 new 关键字,如:book()
7、什么是单例模式?
- 静态函数
- 对象唯一
8、IOS 的资源文件名要全英文格式:如用时间戳代替中文名称
9、Facade其实是一个数组,里面存放着 Model、View 和 Controller
END
写的不容易理解那就设置为私密文章吧Emmmm
上一篇: 收银台(B/S架构)
下一篇: MVC/MVP/MVVM的理解