swift - 在类之间使用相同函数的最佳实践

标签 swift

在 swift 中,如果多个类共有多个函数,而这些类之间的继承不可行,最佳实践是什么?

我是编程新手,所以请不要居高临下。就在几个月前我刚开始学习的时候,有人告诉我重复代码是一种糟糕的做法,当时我正在用 Ruby 编写代码,我可以在其中创建一个包含所有功能的模块,然后只需将模块包含在任何我想在其中使用这些功能的类。只要模块函数中的所有变量都在类中声明,代码就可以工作。

swift 中是否有类似的做法,或者我应该做一些其他事情,比如制作一堆全局函数并将实例变量传递给这些函数?请尽可能具体,因为我将按照您的建议快速编写所有代码,谢谢!

最佳答案

你的问题的简单答案是协议(protocol)

定义协议(protocol)

protocol ProtocolName {
    /* common functions */
    func echoTestString()
}

extension ProtocolName {
    /* default implementation */        
    func echoTestString() {
        print("default string")
    }
}

符合默认实现协议(protocol)的类

class ClassName: ProtocolName {

}

ClassName().echoTestString() // default string

符合重载实现协议(protocol)的类

class AnotherClass: ProtocolName {

    func echoTestString() {
        print("my string")
    }
}

AnotherClass().echoTestString() // my string

关于swift - 在类之间使用相同函数的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40808028/

相关文章:

ios - 使用 AudioKit 通过 iOS 中的虚拟端口发送 MIDI 音符

Swift 通用工厂 : Bug?

swift - 扫描 BLE 外设并连接到它

swift - 为什么 Xcode 不突出显示所有错误?

swift - 如何使用 Swift 为 UICollectionView 插入动画?

ios - 图像按钮的 IBOutlet 在重新创建 socket 后未正确引用按钮

ios - UITextField 的 bindTo rx_text 没有触发 UITextField 的发射事件

swift - 如何知道 WKWebView 是否由于用户交互而重定向?

ios - 为整个应用设置绝对背景

ios - 类型 'AnyObject' 不符合协议(protocol) 'BooleanType'