黑客
登录
客服
网络安全,渗透测试

面向协议编程依赖什么原则(与面向对象编程的异同点)

日期:2021/5/11 19:29:10

面向协议编程依赖什么原则(与面向对象编程的异同点)你知道“God Class”(全能类)是什么吗?就是在巨大的文件里,有一个类充满了各种分类、方法和变量。你的App里极有可能就有一些这样的“God Class”(全能类),甚至你自己都不知道。你知道“God Class”(全能类)是什么了吗?你感觉到它会对你的代码库造成毁灭性的影响了吗?往下看,我会告诉你怎么解决这些问题。

“God Class”(全能类)到底是什么?

一般来说,它存在于你的ViewController里,如果你使用的是MVC编程模式的话;如果你使用MVVM,则会在你的ViewModel里。让我来看一个MVVM编程模式下,“God Class”(全能类)的经典例子。

我们假设你正在构建一个约会App,你可能会需要一个UserViewModel来存储相关数据和处理业务逻辑

struct User {
    let id: UUID
    var name: String?
    var phone: String?
    var email: String?
}

class UserViewModel {
    private(set) var user: User?
    init(id: String) {
        self.user = fetchUser(with: id)
    }
    func fetchUser(with id: String) -> User? {
        //fetch user data from the CoreData and optionally return a User object
    }
    func verifyPhone() {
        if let phone = user?.phone {
            // Perform phone number verification
        }
    }
    func verifyEmail() {
        if let email = user?.email {
            // Perform email verification
        }
    }
    func update(name: String) {
        user?.name = name
    }
    func update(email: String) {
        user?.email = email
        verifyEmail()
    }
}

内容非常直接了当: