Tôi có một lớp với các phương thức tĩnh: lớp này kết thúc cuộc gọi đến Twitter APIHai lớp, gọi lại và thử nghiệm đơn vị
Trong lớp thứ hai, tôi có một số logic nghiệp vụ.
Do hành vi không đồng bộ của một số phương pháp trong lớp trình bao bọc, tôi gặp khó khăn trong việc thiết kế giao tiếp. Đây là những gì tôi đã thực hiện:
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() {
...
}
}
Tôi không chắc chắn rằng thiết kế này theo đúng nghĩa hay không. Tôi không muốn có một liên kết mạnh mẽ giữa các lớp học, đó là lý do tại sao tôi đang sử dụng một cuộc gọi lại.
Đây có phải là thiết kế cổ điển không? Hơn nữa, tôi không cảm thấy hành vi này sẽ dễ dàng kiểm tra?