「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>AOP]]
-[[戻る>.NET開発]]

* 目次 [#ta0e3873]
#contents

*概要 [#af32539b]
**IoC [#t5deb1ed]
-IoC: Inversion of Control
-制御の反転

**IoCとは? [#ub07bbf6]
-個別の目的のために書かれたコード部分が、一般的で再利用可能なライブラリによるフロー制御を受ける形の設計。
-伝統的な手続き型プログラミングと比べると制御の方向が反転しているため、「制御の反転」と呼ばれる。

***設計目的 [#y167aef0]
-あるタスクの実行を実装から分離する。
--モジュールを置き換える際の副作用を予防する。

-あるモジュールを、目的とするタスクだけに集中させる。
--仮定しながらのコーディングから解放し、~
契約に依拠してコーディングさせる(契約プログラミング)。

***ユースケース [#icacf4b9]
デザインパターンの例
-ソフトウェアフレームワーク
-コールバック
-スケジューラ
-イベントループ
-[[依存性の注入(DI)>DI]]

*詳細 [#gbc5cdd4]

**技術 [#kad205a3]
オブジェクト指向プログラミングやその他のプログラミング・パラダイムにて応用される。

-オブジェクト指向プログラミングにおける幾つかの基本的な技法

--テンプレートメソッドパターン~
簡単。派生クラスでメソッドをオーバーライドする。

--[[依存性の注入(DI)>DI]]

--その他
---Factory パターン
---サービスロケータパターン
---ストラテジーパターン
---文脈化された参照

-その他のプログラミング・パラダイムにおける幾つかの基本的な技法

--・・・

**依存性反転原則 [#ob8c9a64]
-依存性反転原則とは関係しているが異なる。

-依存性反転原則は、共有された抽象化を通じて、~
高次と低次の抽象化レイヤー間の結合度を下げる。

-参考
--20160526 依存関係逆転の原則~
https://www.slideshare.net/ShintaroKurosawa/20160526-62511723

*関連 [#q041feca]

**[[AOP]] [#c53341bf]

**[[DI]] [#oc132c09]

*参考 [#v9a45773]

**Wikipedia [#h8e82ff6]
-制御の反転~
https://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E3%81%AE%E5%8F%8D%E8%BB%A2
-契約プログラミング~
https://ja.wikipedia.org/wiki/%E5%A5%91%E7%B4%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0

-制御の逆転~
http://bliki-ja.github.io/InversionOfControl/

----
Tags: [[:プログラミング]], [[:.NET開発]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS