import Foundation
//协议
protocol Print {
var name: String {set get}
init(name: String)
func printContents(content:String) -> Void
}
//协议继承
protocol Show:Print {
func show() -> Void
}
struct LenovePrinter: Print {
var name: String = ""
init(name: String) {
self.name = name
}
func printContents(content:String) -> Void {
print("爱普生打印内容:\(content)")
print("++++++++++++++++++++++++++++")
print(content)
print("++++++++++++++++++++++++++++")
}
}
//代理类
class HPPrinter: Show {
func show() {
print("*******")
}
var name: String = ""
required init(name: String) {
self.name = name
}
func printContents(content:String) -> Void {
print("HP打印内容:\(content)")
print("----------------------------")
print(content)
print("----------------------------")
}
}
//代理类
class EsponPrinter: Print {
var name: String = ""
required init(name: String) {
self.name = name
}
}
//在延展中实现协议中没有实现的方法
extension EsponPrinter {
func printContents(content:String) -> Void {
print("爱普生打印内容:\(content)")
print("++++++++++++++++++++++++++++")
print(content)
print("++++++++++++++++++++++++++++")
}
}
//委托类
class Computer {
func showMessage(printer:Print,content: String) -> Void {
printer.printContents(content: content)
}
}
var hpPrinter = HPPrinter(name:"3337")
var esponPrinter = EsponPrinter(name:"1005")
//协议数组
var arr:[Print] = [hpPrinter,esponPrinter]
var computer = Computer()
computer.showMessage(printer:esponPrinter,content:"久久鸭脖")
computer.showMessage(printer:hpPrinter,content:"久久鸭脖")
protocol P1 {
func kkk() -> Void
}
protocol Maaa:class,P1 {
func sss() -> Void
}
class TestOne: Maaa {
func sss() {
}
func kkk() {
}
}
//struct Test: Maaa {
// func sss() {
// }
// func kkk() {
// }
//}
Swift委托代理实现
最新推荐文章于 2024-04-13 17:42:46 发布