我需要在viewDidLoad
中完成一些设置工作。我已将所有帮助方法添加到配置方法中,因此在viewDidLoad
中,我只需调用configure()
,一切正常。这是一种好的做法还是被视为将代码耦合在一起的不良做法。任何提示表示赞赏!
//configure() called in viewDidLoad
private func configure() {
UserProvider.sharedInstance.fetchUser(with: AuthProvider.sharedInstance.currentUserId(), completionHandler: {
user in
guard let user = user else { return }
self.currentUser = user
self.setupViews(currentUser: user)
self.setupLocation()
})
}
private func setupViews(currentUser: User) {
setupCollectionView()
updateDatasource(currentUser: currentUser)
}
private func setupCollectionView() {
collectionView.dataSource = datasource
collectionView.delegate = datasource
}
private func updateDatasource(currentUser: User) {
UserProvider.sharedInstance.fetchNearbyUsers(for: currentUser, completionHandler: { nearbyUsers in
guard nearbyUsers.isEmpty == false else { return }
self.datasource.update(with: nearbyUsers, collectionView: self.collectionView)
})
}
答案 0 :(得分:0)
答案 1 :(得分:0)
是的,将代码模块化为函数是一种很好的做法。
但命名应该更具可读性和可理解性。
如何吗
假设您在同一个View控制器中要配置一些与UI相关的更改。像导航栏颜色,导航标题等
你想改变一些约束价值。你也想要像现在正在做的那样配置网络。因此,如果您将所有代码放入configure函数中会产生一些误解。在这种情况下,您可以更好地分解
func configureUI(){//write ui configuration here}
func updateConstraintsValue() {//write constraints change code here}
func configureAuth() { //write Authentication configuration code here}