Avatar
delegateパターンもそうですが、existentialを使う場合は具体の実装を知る必要は無いので問題になりません。UIKitは我々のUIScrollViewDelegateの実装を知る必要は無い
これは型パラでも同じじゃないでしょうか?
framework Aにコンテナ、リポジトリのprotocol framework Bにリポジトリを利用した実装 Appにリポジトリの実装
↓こういうようなことですか?? // Framework A protocol RepositoryProtocol { static func fetchAll() async throws -> [Foo] } final class Container<Repository: RepositoryProtocol> { ... } // Framework B final class Store<Repository: RepositoryProtocol> { @Published var foos: [Foo.ID: Foo] = [:] func load() async throws { let foos = try await Repository.fetchAll() self.foos = ... } } // App enum Repository: RepositoryProtocol { static func featchAll() async throws -> [Foo] { ... } } let store: Store<Repository> = ...