iOS简单例子
在 iOS 开发中,MVP 模式可以有效地将视图和业务逻辑分离。以下是一个简单的 MVP 模式示例,其中包括 View、Presenter 和 Model,用于展示用户登录流程。
1. Model
Model 是数据的提供者。在这个例子中,它提供登录验证逻辑。
struct User {
let username: String
let password: String
}
class AuthService {
func login(user: User, completion: @escaping (Bool) -> Void) {
// 模拟网络请求的异步处理
DispatchQueue.global().asyncAfter(deadline: .now() + 1.0) {
// 简单验证逻辑:用户名和密码都等于 "admin" 时返回成功
let isSuccess = (user.username == "admin" && user.password == "admin")
completion(isSuccess)
}
}
}2. View
View 是展示层。它包含 UI 元素,如文本输入框和按钮。在 MVP 中,View 通过接口与 Presenter 交互。
3. Presenter
Presenter 负责处理用户操作,并与 Model 交互来获取数据或验证信息。Presenter 决定何时通知 View 来更新 UI。
数据流概述
用户在
View中输入用户名和密码,并点击登录按钮。View调用Presenter的login方法,传入用户名和密码。Presenter调用Model的login方法,开始验证。Model返回验证结果给Presenter。Presenter调用View的方法,更新 UI 以展示结果(登录成功或失败)。
通过这种方式,业务逻辑都集中在 Presenter 中,View 仅负责 UI 展示,Model 仅负责数据处理和业务逻辑,从而实现良好的解耦。
Last updated