将方法分组为更通用的方法是一种好的做法吗?

时间:2017-06-05 05:08:20

标签: ios swift function oop

我需要在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)
    })
}

2 个答案:

答案 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}