Начнем с подхода 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
}
}
Мне просто нужно знать, какая из них более Swift?