In my code I have 2 separate login types. I have a factory that decides which one to create based on an enum.
Each login type has a different type of credential. Currently my factory method takes just 1 type of credential. How can I generalise my method to accept both an enum for login type with different credential types.
class LoginType1
{
var credentials:Credentials
}
class LoginType2
{
var credentials:Credentials2
}
enum LoginType
{
case : type1,
case : type2
}
struct Credentials
{
var username : String,
var pwd : String
}
struct Creditentials2
{
var key : String,
var id : String
}
public func setupProvider(type: LoginType, credentials: Credentials, ) {
switch type {
case .type1:
provider = LoginType1(credentials: credentials, container: view)
case .type2:
provider = LoginType2(credentials: credentials)
}
}