作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 iOS 开发相对较新,但在 Android/Java/Kotlin 方面拥有丰富的经验。所以我倾向于将我的 ios 项目构建得与我的 Android 项目有点相似。所以我使用的基本结构是
class MyViewController: UIViewController{
private let viewModel = ViewModel()
}
class ViewModel{
func doSomethingAsync(delegate){
SomeFactory.createService().doSomethingAsync(){
delegate.callback
}
}
}
class SomeFactory{
static func createService() -> Service {return ServiceImpl()}
}
class Service{
func doSomething()
}
class ServiceImpl : Service{
func doSomething(){... implementation...}
}
因此 View Controller 对业务逻辑或服务一无所知,它看到的只是数据模型。 View 模型提供了两者之间的桥梁。此外,没有人可以看到 ServiceImpl
类,并且只能通过工厂访问。这个设计是不是太过分了,还是对于ios来说太“javaish”了?人们通常如何将 View 逻辑与应用程序的服务/业务逻辑分开?
最佳答案
在viewController
中更新您的 UI 元素。
如果没有 ui 元素更新,一切(业务逻辑)肯定会转移到 viewModel
关于ios - 如何在 iOS/Swift 项目中清晰分离 ui 和业务逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794389/
我是一名优秀的程序员,十分优秀!