讓與Class
方式開始:子類別訴訟協議
class LoginCredentials {
var id : String
init(userID:String) {
self.id = userID
}
}
的,我們將有以下幾點:
class FacebookLoginCredentials : LoginCredentials {
var token : String
init(userID:String,userToken:String) {
self.token = userToken
super.init(userID: userID)
}}
而且
class TwitterLoginCredentials : LoginCredentials {
var token : String
var secret : String
init(userID:String,userToken:String,secret : String) {
self.token = userToken
self.secret = secret
super.init(userID: userID)
}
}
第二種方法是Protocol Oriented
如果我沒有錯
protocol LoginCredentials {
var id : String { get }
}
那麼我們將有:
struct FacebookLoginCredentials : LoginCredentials {
var id: String
var token : String
init(userID:String,userToken:String) {
self.id = userID
self.token = userToken
}
}
而且
struct TwitterLoginProfile : LoginCredentials {
var id: String
var token : String
var secret : String
init(userID:String,userToken:String,secret : String) {
self.token = userToken
self.secret = secret
self.id = userID
}
}
我只需要知道哪一個更斯威夫特?
協議主要用於授權。在我看來,這裏的子類是更好的選擇。 – milo526
@ milo526協議遠不只用於委派。這是一種非常「客觀的」方式來看待事物。我鼓勵你觀看https://developer.apple.com/videos/play/wwdc2015-408/或閱讀http://www.raywenderlich.com/109156/introducing-protocol-oriented-programming-in-swift-2 – drewag