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委託代理實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.