私は1歳のレガシープロジェクトを他のチームから開発しました。プロジェクトでは、「Utils」というフォルダが見つかりました。このフォルダには、多くのXxxxHelper.swiftソースコードファイルがあります。これらのヘルパーは、サードパーティのポッドもラッピングしています。ポッドKeychainSwiftをラップKeychainHelper.swiftXxxxHelperはどのようなデザインパターンですか?
:
例:CocoaPods "支店"
import Foundation
import Branch
class DeepLinkHelper {
static func handleDeepLink(params: [AnyHashable:Any]?, error: Error?) {
if error == nil {
if let clickedBranch = params?["+clicked_branch_link"] as? Bool, let referringLink = params?["~referring_link"] as? String, let referringUrl = referringLink.toURL(), clickedBranch {
let endpoint = referringUrl.lastPathComponent
switch(endpoint) {
case "debugLink":
#if ENV_DEBUG
NotificationCenter.default.post(name: Notification.Name(rawValue: InternalNotifications.backgroundAlertUser), object: nil, userInfo: ["title":"Branch Link","message":"Success!"])
#endif
break
case "connaccts":
// Display connected accounts
NotificationCenter.default.post(name: Notification.Name(rawValue:InternalNotifications.switchToViewController), object: nil, userInfo:["destination": ViewControllerNames.connections])
break
case "guestinvite":
// Request server to add source account as unvalidated connection
if let gValue = params?["g"] as? String {
handleGuestInvite(gValue)
}
break
default:
break
}
}
print("BranchIO-DLparams: \(String(describing:params))")
}
else {
print("BranchIO-Error: \(error!)")
}
}
static func handleGuestInvite(_ gValue: String) {
NotificationCenter.default.post(name: Notification.Name(rawValue:InternalNotifications.switchToViewController), object: nil, userInfo:["destination": ViewControllerNames.main,"reset":true,"guestInviteData":gValue])
}
}
他のヘルパーをラップDeepLinkHelper 。 PhotoHelper.swiftは再びポッドチューンに
質問をラップTrackingHelper.swiftポッドTOCropViewControllerや他のネイティブキット をラップ:これらのデザインパターンは何
?また、ネイティブSDKやサードパーティのSDKとキットをラップすることのメリットは何ですか?