0
Viper 아키텍처로 설계된 앱이 있습니다. Exeptions을 피하기 위해 각 모듈은 BaseFactory 프로토콜을 준수하는 팩토리 클래스에 의해 생성됩니다.프로토콜을 준수하는 객체가 프로토콜 메소드를 숨겨야합니다.
내 응용 프로그램에서 두 (100 %) 모듈 중 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
}
}