Swift 協(xié)議(Protocol)是一種定義一組方法簽名的類型,它規(guī)定了一個(gè)對(duì)象應(yīng)該具備哪些行為。使用協(xié)議可以提高代碼的復(fù)用性,因?yàn)樗试S不同的類實(shí)現(xiàn)相同的方法,而不需要繼承同一個(gè)基類。以下是如何使用 Swift 協(xié)議來(lái)提高代碼復(fù)用性的幾個(gè)示例:
Drawable
的協(xié)議,它包含一個(gè)名為 draw
的方法:protocol Drawable {
func draw()
}
Circle
的類,并讓它實(shí)現(xiàn) Drawable
協(xié)議:class Circle: Drawable {
func draw() {
print("Drawing a circle")
}
}
drawShape
,它接受一個(gè)實(shí)現(xiàn)了 Drawable
協(xié)議的參數(shù):func drawShape(_ shape: Drawable) {
shape.draw()
}
Drawable
協(xié)議的類實(shí)例給 drawShape
函數(shù),而不需要關(guān)心具體的類是什么:let circle = Circle()
drawShape(circle) // 輸出 "Drawing a circle"
通過(guò)這種方式,你可以輕松地添加新的類來(lái)實(shí)現(xiàn) Drawable
協(xié)議,并讓它們與現(xiàn)有的代碼兼容,而無(wú)需修改現(xiàn)有的代碼。這提高了代碼的復(fù)用性和靈活性。