0
私はViperアーキテクチャで設計されたアプリケーションを持っています。例外を避けるために、各モジュールはBaseFactoryプロトコルに準拠するファクトリクラスによって作成されます。プロトコルに準拠したオブジェクトはプロトコルメソッドを隠すべきです
私のアプリでは、2つのモジュール(2%)のうち2つを、引数を受け入れるファクトリメソッドであるプロトコル経由で強制されないカスタムファクトリメソッドで作成する必要があります。
MemberProfileFactoryクラスのcreateViperModule()関数を「非表示/無効にする」ことは可能ですか?
protocol BaseFactory {
static func createViperModule() -> UIViewController
}
class HelloFactory: BaseFactory {
static func creatViperModule() -> UIViewController {
let p = HelloPresenter()
let storyboard = UIStoryboard.init(name: "Hello", bundle: nil)
let vc = (storyboard.instantiateInitialViewController() as? HelloVC)!
p.vc = vc
vc.p = p
return vc
}
}
class MemberProfileFactory: BaseFactory {
static func createViperModule() -> UIViewController {
return PublicProfileVC()
}
static func createViperModule(withMember member: MemberModel) -> UIViewController {
let p = MemberProfilePresenter()
let storyboard = UIStoryboard.init(name: "MemberProfile", bundle: nil)
let vc = (storyboard.instantiateInitialViewController() as? MemberProfileVC)!
p.vc = vc
p.user = user
vc.p = p
return vc
}
}