У меня есть один класс со статическими методами: этот класс переносит вызовы в API Twitter
Во втором классе у меня есть бизнес-логика.
Из-за поведения асинхронности некоторых методов в классе-оболочке мне сложно сконструировать связь. Вот что я сделал:
APIManager.swift
public class APIManager {
class func getPermission(callback : () -> Void) {
let accountStore = ACAccountStore()
let accountType =
ACAccountStore().accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierTwitter)
let callbackRequestAccess = { (granted: Bool, error: NSError!) -> Void in
...
if(granted) {
callback()
}
}
accountStore.requestAccessToAccountsWithType(setAccountType,
options: nil, completion: callbackRequestAccess)
}
}
Welcome.swift
public class Welcome {
public func checkPermission() {
APIManager.getPermission(getTweet)
}
public func getTweet() {
...
}
}
Я не уверен, что этот дизайн в порядке или нет. Я не хочу иметь прочную связь между этими классами, поэтому я использую обратный вызов.
Это классический дизайн? Более того, я не чувствую, что это поведение будет легко протестировать?