【せいぎょのはんてん】
制御の反転(IoC) とは?
最終更新:
💡 処理を書く側から、呼び出しを管理する側へ主導権を移す
処理の呼び出しや部品の組み立てなどの制御を、利用するコード自身からフレームワークなどの外側へ移す設計原則。イベント処理の呼び出しや依存性注入(DI)が例。どの制御を外へ移すかを考えると理解しやすい。
📌 このページのポイント
制御の反転って何がひっくり返るの?
自分で処理の順番を決めなくていいの?
全部を任せるわけではないよ。ボタンのイベント処理を登録すると、イベントのときに呼ぶのは仕組み側。でも、その処理の中で何をどの順番で行うかは自分で書く。任せる部分と自分が決める部分を区別しよう。
どうやって自分の処理を渡すの?
IoCとDIは同じものなの?
使えば必ずテストしやすくなる?
依存先を外から渡せる設計なら、テスト用の部品へ差し替えやすくなるよ。ただしIoCという名前だけでは保証されない。依存関係や呼び出し規約を理解し、処理内部の責任も整理する必要があるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「制御の反転」って出てきたら「呼び出しや部品の用意を外側の仕組みに任せる設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Inversion of Control」 = 制御の反転
💬 従来はアプリケーションがライブラリを呼んでいたのを「逆転(Inversion)」させるという意味だよ