オブジェクト指向で概要→詳細という順で作るときに、詳細の実体はどのように渡すのか?

概要は詳細に依存してはならない。詳細のインターフェースに依存する必要がある。
……ではそのインターフェースを実装した実体はどっから来るんだ?
という疑問。
・Strategyパターン      実体はコンストラクタ引数として外部から渡す。
・Observerパターン      実装をobserverオブジェクトとして外部から登録する。
・AbstructFactory パターン  実体を生成するfactoryオブジェクトをコンストラクタ引数として外部から渡す。
FactoryMethod パターン   実体を生成するvirtualメソッドを持つ。それを継承したクラスが実体を生成する。