MVVM中的可观察对象绑定到哪里?

MVVM中的可观察对象绑定到哪里?,mvvm,reactive-programming,rx-swift,Mvvm,Reactive Programming,Rx Swift,我在RxSwift上注意到,在初始化时,观察值从ViewController传递到ViewModel: let viewModel = GithubSignupViewModel1( input: ( username: usernameOutlet.rx_text.asObservable(), password: passwordOutlet.rx_text.asObservable(),

我在RxSwift上注意到,在初始化时,观察值从ViewController传递到ViewModel:

let viewModel = GithubSignupViewModel1(
            input: (
                username: usernameOutlet.rx_text.asObservable(),
                password: passwordOutlet.rx_text.asObservable(),
                repeatedPassword: repeatedPasswordOutlet.rx_text.asObservable(),
                loginTaps: signupOutlet.rx_tap.asObservable()
            ),
            dependency: (
                API: GitHubDefaultAPI.sharedAPI,
                validationService: GitHubDefaultValidationService.sharedValidationService,
                wireframe: DefaultWireframe.sharedInstance
            )
        )
这是在反应式编程中绑定登录点击和文本字段的正确方法吗

在看到这个示例之前,我在ViewModel
onSignUpClick()
中创建了一个函数,并从视图控制器绑定中单击以运行该函数。那是坏形式吗


似乎如果所有内容都通过init,那么它将导致一个非常丰富的init函数

很难从一句话中判断您以前的方法是否是糟糕的形式。视图模型函数如何访问字段值?它如何将结果返回给视图控制器?要给出正确的响应,我们需要查看代码

至于“fat
init
”,这可能是个人偏好,但我看不出有什么问题。不管怎样,这些输入都会在某个地方得到处理。因此,对我来说,
init
中的一行对于视图控制器来说,最终看起来非常纤细