如果有两个相似的类需要相同的功能。最好是全局编写函数,还是在每个类中两次编写相同的函数?例如

选项1:两个实例函数

class A {

    func buttonTapped() {
        upvote(id)
    }

    func upvote(postID:String) {
        // upvote the post
    }
}

class B {

    func buttonTapped() {
        upvote(id)
    }

    func upvote(postID:String) {
        // upvote the post
    }
}

选项2:一个全局函数
class A {
    func buttonTapped() {
        upvote(id)
    }
}

class B {
    func buttonTapped() {
        upvote(id)
    }
}

func upvote(postID:string) {
        // upvote the post
}

还是有更好的选择?

最佳答案

我都不建议。

您应该有一个数据模型类,并且upvote函数应该是该类的一部分。

class Post {
    var postID: String
    public private(set) var votes: Int

    ...

    func upvote() {
        self.votes += 1
    }
}

然后您将其称为
 somePost.upvote()

关于ios - 1个全局函数或许多实例函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44619654/

10-11 06:59