<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>依存関係 – AichiLog</title>
	<atom:link href="https://aichi.blog/tag/%E4%BE%9D%E5%AD%98%E9%96%A2%E4%BF%82/feed/" rel="self" type="application/rss+xml" />
	<link>https://aichi.blog</link>
	<description>学びて富み　富みて学ぶ</description>
	<lastBuildDate>Mon, 11 Aug 2025 05:55:33 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://aichi.blog/wp-content/uploads/2021/12/cropped-915AB649-D1E9-4810-9658-CB8CE1B605FD.JPEG-2-32x32.jpeg</url>
	<title>依存関係 – AichiLog</title>
	<link>https://aichi.blog</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://aichi.blog/tag/%E4%BE%9D%E5%AD%98%E9%96%A2%E4%BF%82/feed/"/>
	<item>
		<title>依存関係逆転の法則（Dependency Inversion Principle）: Go 言語で柔軟で強い設計を実現するには？</title>
		<link>https://aichi.blog/dependency-inversion-principle/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dependency-inversion-principle</link>
		
		<dc:creator><![CDATA[愛知郎]]></dc:creator>
		<pubDate>Sat, 31 May 2025 06:30:58 +0000</pubDate>
				<category><![CDATA[Go]]></category>
		<category><![CDATA[依存関係]]></category>
		<category><![CDATA[設計]]></category>
		<guid isPermaLink="false">https://aichi.blog/dependency-inversion-principle/</guid>

					<description><![CDATA[<p>目次 依存関係逆転の法則（Dependency Inversion Principle）とは2 つのポイント具体例で理解する1. 具象に依存している悪い例2. 抽象に依存させる良い例（依存関係逆転の法則の実践）日常的なた [&#8230;]</p>
<p>The post <a href="https://aichi.blog/dependency-inversion-principle/">依存関係逆転の法則（Dependency Inversion Principle）: Go 言語で柔軟で強い設計を実現するには？</a> first appeared on <a href="https://aichi.blog">AichiLog</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">依存関係逆転の法則（Dependency Inversion Principle）とは</a></li><li><a href="#toc2" tabindex="0">2 つのポイント</a></li><li><a href="#toc3" tabindex="0">具体例で理解する</a><ol><li><a href="#toc4" tabindex="0">1. 具象に依存している悪い例</a></li><li><a href="#toc5" tabindex="0">2. 抽象に依存させる良い例（依存関係逆転の法則の実践）</a></li></ol></li><li><a href="#toc6" tabindex="0">日常的なたとえ</a><ol><li><a href="#toc7" tabindex="0">1&#xfe0f;&#x20e3; 具象（具体的なモノそのもの）に依存している例</a></li><li><a href="#toc8" tabindex="0">2&#xfe0f;&#x20e3; 抽象（共通ルール・インターフェース）に依存している例</a></li><li><a href="#toc9" tabindex="0">違いを一言で</a></li></ol></li><li><a href="#toc10" tabindex="0">なぜ「逆転」なのか</a></li><li><a href="#toc11" tabindex="0">まとめ</a><ol><li><a href="#toc12" tabindex="0">参考文献</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">依存関係逆転の法則（Dependency Inversion Principle）とは</span></h2></p>
<p>依存関係逆転の法則とは、ソフトウェア設計において「上位モジュール（ビジネスロジックなど）が下位モジュール（詳細な実装、たとえばデータベースや外部サービスなど）に依存しないようにし、両者とも“抽象（インターフェースや抽象クラス）”に依存するべきだ」という原則です。これにより、システムは柔軟性・拡張性・保守性が高くなり、変更に強くなります。</p>
<p><h2><span id="toc2">2 つのポイント</span></h2></p>
<p><ul><li>上位モジュールも下位モジュールも、具体的な実装ではなく抽象（インターフェースなど）に依存する</li><li>実装の詳細（下位モジュール）が抽象に従うようにする（＝依存の向きを逆転させる）</li></ul>
<hr></p>
<p><h2><span id="toc3">具体例で理解する</span></h2></p>
<p><h3><span id="toc4">1. 具象に依存している悪い例</span></h3></p>
<p>たとえば「メールを送る」機能を考えます。</p>
<div class="hcb_wrap"><pre class="prism line-numbers language-go" data-lang="go" data-show-lang="1"><code class="language-go" data-hcb-clip="0">// EmailSender はメール送信を担当する構造体
type EmailSender struct{}

// SendEmail はメールを送信するメソッド
func (e *EmailSender) SendEmail(message string) {
	// メール送信処理
	fmt.Printf("メールを送信中: %s\n", message)
}

// NotificationService は通知サービスを提供する構造体
type NotificationService struct {
	emailSender *EmailSender
}

// NewNotificationService はNotificationServiceの新しいインスタンスを作成
func NewNotificationService() *NotificationService {
	return &NotificationService{
		emailSender: &EmailSender{},
	}
}

// Send はメッセージを送信するメソッド
func (n *NotificationService) Send(message string) {
	n.emailSender.SendEmail(message)
}

// 使用例
func main() {
	service := NewNotificationService()
	service.Send("テストメッセージです")
}</code></pre><button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;0&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<p>この例では、<code>NotificationService</code>が<code>EmailSender</code>という具体的な実装に直接依存しています。もし今後、SMS 送信や他の通知手段を追加したい場合、<code>NotificationService</code>のコードを修正しなければなりません。</p>
<p><hr></p>
<p><h3><span id="toc5">2. 抽象に依存させる良い例（依存関係逆転の法則の実践）</span></h3></p>
<div class="hcb_wrap"><pre class="prism line-numbers language-go" data-lang="go" data-show-lang="1"><code class="language-go" data-hcb-clip="1">// MessageSender はメッセージ送信のインターフェース
type MessageSender interface {
	Send(message string)
}

// EmailSender はメール送信を実装する構造体
type EmailSender struct{}

// Send はMessageSenderインターフェースを実装
func (e *EmailSender) Send(message string) {
	// メール送信処理
	fmt.Printf("メールを送信中: %s\n", message)
}

// NotificationService は通知サービスを提供する構造体
type NotificationService struct {
	messageSender MessageSender
}

// NewNotificationService はNotificationServiceの新しいインスタンスを作成
func NewNotificationService(messageSender MessageSender) *NotificationService {
	return &NotificationService{
		messageSender: messageSender,
	}
}

// Send はメッセージを送信するメソッド
func (n *NotificationService) Send(message string) {
	n.messageSender.Send(message)
}

// 使用例
func main() {
	// EmailSenderを作成
	emailSender := &EmailSender{}

	// NotificationServiceに依存性を注入
	service := NewNotificationService(emailSender)

	// メッセージを送信
	service.Send("テストメッセージです")
}</code></pre><button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;1&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<p>このように、<code>NotificationService</code>は<code>MessageSender</code>という抽象（インターフェース）に依存し、<code>EmailSender</code>はその実装を担います。今後、<code>SmsSender</code>など新しい通知手段を追加しても、<code>NotificationService</code>のコードを変更せずに済みます。</p>
<p>以下は、具体的に、<code>SmsSender</code>メソッドを追加した場合のコードです。</p>
<div class="hcb_wrap"><pre class="prism line-numbers language-go" data-lang="go" data-show-lang="1"><code class="language-go" data-hcb-clip="2">// MessageSender はメッセージ送信のインターフェース
type MessageSender interface {
	Send(message string)
}

// ----------------------- 既存の実装 -----------------------

type EmailSender struct{}

func (e *EmailSender) Send(message string) {
	fmt.Printf("メールを送信中: %s\n", message)
}

// ----------------------- 追加する実装 ----------------------

type SmsSender struct{}

func (s *SmsSender) Send(message string) {
	// SMS 送信処理（ここではダミー）
	fmt.Printf("SMS を送信中: %s\n", message)
}

// -------------------- 共通サービス層 -----------------------

type NotificationService struct {
	messageSender MessageSender
}

func NewNotificationService(sender MessageSender) *NotificationService {
	return &NotificationService{messageSender: sender}
}

func (n *NotificationService) Send(message string) {
	n.messageSender.Send(message)
}

// ------------------------- 使用例 --------------------------

func main() {
	// 1) Email で通知
	emailSender := &EmailSender{}
	emailService := NewNotificationService(emailSender)
	emailService.Send("メールのテストメッセージです")

	// 2) SMS で通知
	smsSender := &SmsSender{}
	smsService := NewNotificationService(smsSender)
	smsService.Send("SMS のテストメッセージです")
}</code></pre><button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;2&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<p><hr></p>
<p><h2><span id="toc6">日常的なたとえ</span></h2></p>
<p><h3><span id="toc7">1&#xfe0f;&#x20e3; 具象（具体的なモノそのもの）に依存している例</span></h3></p>
<p>イメージとしては、 “その道具・方法しか使えない” 状態です。</p>
<p><table class="wp-table">
<thead>
<tr>
<th>シーン</th>
<th>説明</th>
<th>困るポイント</th>
</tr>
</thead>
<tbody>
<tr>
<td>➊ 乾電池式のおもちゃが “単三電池” 専用</td>
<td>取扱説明書には「このおもちゃは単三電池 2 本のみ対応」と書いてある。単四や充電池は入らない。</td>
<td>単三が切れたら遊べない。別規格が増えるたびに製品を買い替え or 改造が必要。</td>
</tr>
<tr>
<td>➋ コーヒーメーカーが “専用カプセル” だけを認識</td>
<td>機械内部のセンサーはメーカー純正カプセルの形状だけを前提に作られている。</td>
<td>新しい味のカプセルが出ても、形が少し違うとエラーになり抽出できない。</td>
</tr>
<tr>
<td>➌ スマートフォン用アクセサリが “Lightning 端子” 固定</td>
<td>ケーブル・ドック・マイク…すべて Lightning でしか給電・通信できない設計。</td>
<td>端末が USB-C に変わった瞬間、全部使えなくなる。</td>
</tr>
</tbody>
</table></p>
<p>「特定の電池・カプセル・コネクタ ＝ 具体的実装」にロックインされていると <strong>道具が増える or 仕様が変わるたびに本体側を作り直さなければならない</strong>。</p>
<p>これが、具象に依存している例です。</p>
<p><hr></p>
<p><h3><span id="toc8">2&#xfe0f;&#x20e3; 抽象（共通ルール・インターフェース）に依存している例</span></h3></p>
<p>イメージとしては、 “ルールさえ守れば何でも OK” な状態です。</p>
<p><table class="wp-table">
<thead>
<tr>
<th>シーン</th>
<th>説明</th>
<th>うれしいポイント</th>
</tr>
</thead>
<tbody>
<tr>
<td>➊ コンセント（AC100 V 50/60 Hz）を使う家電</td>
<td>ドライヤー・炊飯器・PC などは「家庭用 100 V の壁コンセント」というルールだけを前提に作る。</td>
<td>メーカーも形も違う家電を自由に差し替えられる。将来、AI 搭載炊飯器が出てもコンセントはそのまま。</td>
</tr>
<tr>
<td>➋ “交通系 IC カード” 対応改札機</td>
<td>Suica、PASMO、ICOCA… すべて “FeliCa タッチで残高を引く” というインターフェースを共有。</td>
<td>新しい地域カードが増えても改札機はソフト追加だけで対応。ハードを一から作り替えなくて済む。</td>
</tr>
<tr>
<td>➌ 汎用サイズのネジ穴（1/4-20 UNC）の三脚</td>
<td>カメラでもスマホホルダーでも、同じネジ規格を守れば載せ替え可能。</td>
<td>新しいカメラが発売されても三脚本体は継続利用。周辺機器のバリエーションが豊富に。</td>
</tr>
</tbody>
</table></p>
<p>「壁コンセント・IC 乗車券・ネジ規格 ＝ 抽象インターフェース」にロックインされていると <strong>新しい製品が増えても “共通ルール” さえ守れば双方そのまま使える</strong>。</p>
<p>これが、抽象に依存している例です。</p>
<p><hr></p>
<p><h3><span id="toc9">違いを一言で</span></h3></p>
<p><table class="wp-table">
<thead>
<tr>
<th>観点</th>
<th>具象依存</th>
<th>抽象依存</th>
</tr>
</thead>
<tbody>
<tr>
<td>依存先</td>
<td>“単三電池” のように 特定品そのもの</td>
<td>“乾電池 1.5 V” のような 共通仕様</td>
</tr>
<tr>
<td>変化への強さ</td>
<td>容易に壊れる・作り直しが必要</td>
<td>追加・交換が容易</td>
</tr>
<tr>
<td>開発者／利用者の自由度</td>
<td>限定的（ロックイン）</td>
<td>拡張しやすくイノベーションが起きやすい</td>
</tr>
</tbody>
</table></p>
<p>DIP を意識すると日常でもソフトウェアでも「<strong>長く使える・後で組み替えられる</strong>」設計ができ、<strong>“選択肢が増えても主役（高レベル）は迷わない”</strong> 世界が実現します。</p>
<p><hr></p>
<p><h2><span id="toc10">なぜ「逆転」なのか</span></h2></p>
<p><table class="wp-table">
<thead>
<tr>
<th>項目</th>
<th>ふつう（逆転前）</th>
<th>依存関係“逆転”後</th>
</tr>
</thead>
<tbody>
<tr>
<td>コードの層</td>
<td>高レベル（ビジネスロジック）が ↓ 低レベル（具体的処理）を直接呼ぶ</td>
<td>低レベルが ↑ 共通の“ルール（抽象）”に合わせる</td>
</tr>
<tr>
<td>物理的な依存（import / include）</td>
<td>高レベル → 低レベル</td>
<td>低レベル → 抽象 ← 高レベル</td>
</tr>
</tbody>
</table></p>
<p>つまり、本来“上”が“下”を<strong>見に行っていた依存の向き</strong>を、“下”が“上のルール”に<strong>合わせに行く形へひっくり返す</strong>からです。</p>
<p><hr></p>
<p><h2><span id="toc11">まとめ</span></h2></p>
<ul><li><strong>依存関係逆転の法則</strong>とは、「具体的な実装」ではなく「抽象（インターフェース）」に依存することで、柔軟で変更に強い設計を実現する原則です。</li><li>これにより、上位モジュールも下位モジュールも抽象に依存し、実装の入れ替えや拡張が容易になります。</li></ul>
<h3><span id="toc12">参考文献</span></h3>



<a rel="noopener" href="https://qiita.com/k2491p/items/686ee5dd72b4baf9a81a" title="【SOLID】依存関係逆転の原則を完全に理解したい - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRmF2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tJTJGdSUyRjc2NzYzNTkwJTNGdiUzRDQ_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWFjNmUyMDFiNzdiZDYwMjQ3ZjMwYjMyZTlmZWQxMDY4%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D83b61c0cbe5bf96ab1817375e88345b1?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUUzJTgwJTkwU09MSUQlRTMlODAlOTElRTQlQkUlOUQlRTUlQUQlOTglRTklOTYlQTIlRTQlQkYlODIlRTklODAlODYlRTglQkIlQTIlRTMlODElQUUlRTUlOEUlOUYlRTUlODklODclRTMlODIlOTIlRTUlQUUlOEMlRTUlODUlQTglRTMlODElQUIlRTclOTAlODYlRTglQTclQTMlRTMlODElOTclRTMlODElOUYlRTMlODElODQmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz01MDVkMDIwMjk2NDYxNDZlYWNhN2Q2YjkyMDVjMWE4NQ&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBrMjQ5MXAmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtcGFkPTAmcz04MThhZWM4MDk1MzhkYmZjMDA1NDg3MTg3NjMxNjQ4Ng&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=c53e353a99d144c4706153e93b44f0c0" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【SOLID】依存関係逆転の原則を完全に理解したい - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">SOLIDの原則とは？ SOLIDは 変更に強い 理解しやすい などのソフトウェアを作ることを目的とした原則です。 次の5つの原則があります。 Single Responsibility Princi...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/k2491p/items/686ee5dd72b4baf9a81a" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>





<a rel="noopener" href="https://ja.wikibooks.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/%E4%BE%9D%E5%AD%98%E6%80%A7%E9%80%86%E8%BB%A2%E3%81%AE%E5%8E%9F%E5%89%87" title="プログラミング/依存性逆転の原則 - Wikibooks" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fja.wikibooks.org%2Fwiki%2F%25E3%2583%2597%25E3%2583%25AD%25E3%2582%25B0%25E3%2583%25A9%25E3%2583%259F%25E3%2583%25B3%25E3%2582%25B0%2F%25E4%25BE%259D%25E5%25AD%2598%25E6%2580%25A7%25E9%2580%2586%25E8%25BB%25A2%25E3%2581%25AE%25E5%258E%259F%25E5%2589%2587?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">プログラミング/依存性逆転の原則 - Wikibooks</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ja.wikibooks.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/%E4%BE%9D%E5%AD%98%E6%80%A7%E9%80%86%E8%BB%A2%E3%81%AE%E5%8E%9F%E5%89%87" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ja.wikibooks.org</div></div></div></div></a>





<a rel="noopener" href="https://qiita.com/hirodragon/items/090467284d19a4cbafa0" title="初学者でも10分で理解できる依存性逆転の原則(Dependency inversion principle) - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMjM1OTU4JTJGcHJvZmlsZS1pbWFnZXMlMkYxNTE3Njg3MDU4P2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZiZz1GRkZGRkYmZm09cG5nMzImcz05NTg5ZTcyNGFiYzcwMDA1ODFmNWNiZTdmYjNiMDcxMw%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D062f8c9b71a7c72d46e04fba70c36424?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUU1JTg4JTlEJUU1JUFEJUE2JUU4JTgwJTg1JUUzJTgxJUE3JUUzJTgyJTgyMTAlRTUlODglODYlRTMlODElQTclRTclOTAlODYlRTglQTclQTMlRTMlODElQTclRTMlODElOEQlRTMlODIlOEIlRTQlQkUlOUQlRTUlQUQlOTglRTYlODAlQTclRTklODAlODYlRTglQkIlQTIlRTMlODElQUUlRTUlOEUlOUYlRTUlODklODclMjhEZXBlbmRlbmN5JTIwaW52ZXJzaW9uJTIwcHJpbmNpcGxlJTI5JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9MmNkN2Q4YWQ1N2QxYTMxNmUyYzBiZDMxNGY3NWVlMDk&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBoaXJvZHJhZ29uJnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9NmJlZDZlYmQ2ZjUyNzdkMjczOWNmODU3ZDhkNmM1YmY&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=80cc64197e5cc97fa1a2b30b0c0d3f73" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">初学者でも10分で理解できる依存性逆転の原則(Dependency inversion principle) - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">この記事について この記事は YYPHPアドベントカレンダー22日目の記事となります。 内容としては私が主催しているPHPer向けの勉強会 ぺちオブにて開催した、初心者向けのオブジェクト指向勉強会にて...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/hirodragon/items/090467284d19a4cbafa0" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>





<a rel="noopener" href="https://qiita.com/phenan/items/a8030b164d95a035a5dc" title="令和版: 依存関係逆転の法則の実現方法 - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMjczNjMlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODQ5OTI_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWRlM2UzMWJmOWYxNzllOWVlNzU1N2E3NjMyYWMzZDNi%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D0ad522ebdc1e0f85c54b9906f165e95f?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUU0JUJCJUE0JUU1JTkyJThDJUU3JTg5JTg4JTNBJTIwJUU0JUJFJTlEJUU1JUFEJTk4JUU5JTk2JUEyJUU0JUJGJTgyJUU5JTgwJTg2JUU4JUJCJUEyJUUzJTgxJUFFJUU2JUIzJTk1JUU1JTg5JTg3JUUzJTgxJUFFJUU1JUFFJTlGJUU3JThGJUJFJUU2JTk2JUI5JUU2JUIzJTk1JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9ZGQ2OTBmMjFkMTI5MmYzMTIzNWNlYWNlODkwMWMxYmU&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBwaGVuYW4mdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtcGFkPTAmcz0wNTllMzQwM2RmZGM5YWNjZDRkYjdhNTdkMDM4NGNhNA&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=e3eb3d6af9859bf7a39e899e0d524c15" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">令和版: 依存関係逆転の法則の実現方法 - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">依存関係逆転の法則とは コアのロジックが実装の詳細に依存しないようにして、モジュール間を疎結合にしましょうという原則。 Wikipediaでは以下のように説明されている。 上位モジュールはいかなるもの...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/phenan/items/a8030b164d95a035a5dc" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>





<a rel="noopener" href="https://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E9%80%86%E8%BB%A2%E3%81%AE%E5%8E%9F%E5%89%87" title="依存性逆転の原則 - Wikipedia" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fja.wikipedia.org%2Fwiki%2F%25E4%25BE%259D%25E5%25AD%2598%25E6%2580%25A7%25E9%2580%2586%25E8%25BB%25A2%25E3%2581%25AE%25E5%258E%259F%25E5%2589%2587?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">依存性逆転の原則 - Wikipedia</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ja.wikipedia.org/wiki/%E4%BE%9D%E5%AD%98%E6%80%A7%E9%80%86%E8%BB%A2%E3%81%AE%E5%8E%9F%E5%89%87" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ja.wikipedia.org</div></div></div></div></a>





<a rel="noopener" href="https://zenn.dev/yoshinani_dev/articles/c743a3d046fa78" title="依存性の逆転のいちばんわかりやすい説明" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://res.cloudinary.com/zenn/image/upload/s--iUsJWgr5--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E4%25BE%259D%25E5%25AD%2598%25E6%2580%25A7%25E3%2581%25AE%25E9%2580%2586%25E8%25BB%25A2%25E3%2581%25AE%25E3%2581%2584%25E3%2581%25A1%25E3%2581%25B0%25E3%2582%2593%25E3%2582%258F%25E3%2581%258B%25E3%2582%258A%25E3%2582%2584%25E3%2581%2599%25E3%2581%2584%25E8%25AA%25AC%25E6%2598%258E%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:Nakano%2520as%2520a%2520Service%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2ZhMjMyNjAxN2QuanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:YOSHINANI%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2lrTHp0c1hkMHVUN3dhQ1FwWTBtQ3JfbzVKbnFJUkE1U1BFV1gxPXM5Ni1j%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">依存性の逆転のいちばんわかりやすい説明</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://zenn.dev/yoshinani_dev/articles/c743a3d046fa78" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">zenn.dev</div></div></div></div></a>





<a rel="noopener" href="https://emb-sw-eng.com/solid_d/" title="SOLID原則とは？SOLIDのD、依存関係逆転(依存性逆転)の原則と得られるメリットをわかりやすく解説" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://emb-sw-eng.com/wp-content/uploads/2021/03/SOLID_D_EC-1.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">SOLID原則とは？SOLIDのD、依存関係逆転(依存性逆転)の原則と得られるメリットをわかりやすく解説</div><div class="blogcard-snippet external-blogcard-snippet">現役車載組込みソフトエンジニアの竹です。今回はSOLID原則のD、依存関係逆転の原則についてまとめます。この記事は依存関係逆転の原則の概要を説明するものであり、具体的な実装例については触れない初心者向...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://emb-sw-eng.com/solid_d/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">emb-sw-eng.com</div></div></div></div></a>





<a rel="noopener" href="https://zenn.dev/chida/articles/e46a66cd9d89d1" title="【SOLID原則】依存性逆転の原則 - DIP" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://res.cloudinary.com/zenn/image/upload/s--nTMX5Z2M--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2580%2590SOLID%25E5%258E%259F%25E5%2589%2587%25E3%2580%2591%25E4%25BE%259D%25E5%25AD%2598%25E6%2580%25A7%25E9%2580%2586%25E8%25BB%25A2%25E3%2581%25AE%25E5%258E%259F%25E5%2589%2587%2520-%2520DIP%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:TC%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzI5NmE3MDhmYWEuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【SOLID原則】依存性逆転の原則 - DIP</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://zenn.dev/chida/articles/e46a66cd9d89d1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">zenn.dev</div></div></div></div></a>





<a rel="noopener" href="https://blog.openreplay.com/ja/%E4%BE%9D%E5%AD%98%E6%80%A7%E9%80%86%E8%BB%A2%E3%81%AE%E5%8E%9F%E5%89%87-%E8%AA%AC%E6%98%8E/" title="依存性逆転の原則とは？簡単に説明" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.openreplay.com/images/dependency-inversion-principle-explained/images/hero.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">依存性逆転の原則とは？簡単に説明</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.openreplay.com/ja/依存性逆転の原則-説明/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">blog.openreplay.com</div></div></div></div></a>





<a rel="noopener" href="https://rookie-programmer.jp/?p=75" title="【SOLID原則】新人エンジニアが教える「依存関係逆転の原則」" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://rookie-programmer.jp/wp-content/uploads/2023/08/608ee7dc1fd91ba151015173d79db8cb.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【SOLID原則】新人エンジニアが教える「依存関係逆転の原則」</div><div class="blogcard-snippet external-blogcard-snippet">こんにちは。新人プログラマーの岩本です。今回はSOLID原則の1つ「依存関係逆転の原則(Dependency Inversion Principle)」について、自分なりに調べたことをまとめます。プロ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://rookie-programmer.jp/?p=75" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">rookie-programmer.jp</div></div></div></div></a>





<a rel="noopener" href="https://qiita.com/marienplatz/items/1e3fe7597afc75b22399" title="依存性逆転の原則って、結局何が逆転してるの？ - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnNlY3VyZS5ncmF2YXRhci5jb20lMkZhdmF0YXIlMkYzMTY1MWNjMzkyZjBhZGRiZWUxODEyYzU5YTYyYmI3Nj9peGxpYj1yYi00LjAuMCZhcj0xJTNBMSZmaXQ9Y3JvcCZtYXNrPWVsbGlwc2UmYmc9RkZGRkZGJmZtPXBuZzMyJnM9M2Q0MmY3NTEwZWI5MGQwODJiOTdkNzljNjQyZTE0ZjM%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D192529e8ca091202e1ebe1f0ab80190f?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUU0JUJFJTlEJUU1JUFEJTk4JUU2JTgwJUE3JUU5JTgwJTg2JUU4JUJCJUEyJUUzJTgxJUFFJUU1JThFJTlGJUU1JTg5JTg3JUUzJTgxJUEzJUUzJTgxJUE2JUUzJTgwJTgxJUU3JUI1JTkwJUU1JUIxJTgwJUU0JUJEJTk1JUUzJTgxJThDJUU5JTgwJTg2JUU4JUJCJUEyJUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgyJThCJUUzJTgxJUFFJUVGJUJDJTlGJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9NTdiODI1YzRiYzBiZDRjMDA1N2E5ODUxOTUwNWJhNjE&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBtYXJpZW5wbGF0eiZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTgzNDIxNmI5NjdhZWU2MjMzOWRjZWE3NmMzNGZkNmRj&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=00b3eecf2fbbc78b41218a9365d64d42" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">依存性逆転の原則って、結局何が逆転してるの？ - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">bitFlyer Advent Calendar 2022の2日目です。 こんにちは、私はフロントエンド開発部でAndroidエンジニアをしています。 タイトルは、依存性逆転の原則に対する私のファース...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/marienplatz/items/1e3fe7597afc75b22399" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>





<a rel="noopener" href="https://qiita.com/zizynonno/items/6bf71d73d790e27fb9ee" title="依存関係逆転の原則 - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkYwJTJGMjcwMTMyJTJGcHJvZmlsZS1pbWFnZXMlMkYxNjA4NjMxMjg5P2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZiZz1GRkZGRkYmZm09cG5nMzImcz1iMGQ1YTIzM2I1YjkxMGMzMjgyMDA4MDIxZTkzNmUyZQ%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3De6041d4fd6b5125fff26231dfd81214a?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUU0JUJFJTlEJUU1JUFEJTk4JUU5JTk2JUEyJUU0JUJGJTgyJUU5JTgwJTg2JUU4JUJCJUEyJUUzJTgxJUFFJUU1JThFJTlGJUU1JTg5JTg3JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9OWMwMThjZjMzYmY1MjQ1NjY2MDE3YmNmYmU4ZDZmZGM&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB6aXp5bm9ubm8mdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtcGFkPTAmcz1mMGM3ZWM5YjM4NDM3ZDgxMTY2NDMxNDNhYmY3YTU4Yw&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=90753a4f4636a2d6ce9d94f5f0c9b37f" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">依存関係逆転の原則 - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">依存関係逆転の原則（Dependency Inversion Principle、DIP）は、ソフトウェア設計の原則の一つ。高レベルモジュールが低レベルモジュールに直接依存しないように設計することを意...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/zizynonno/items/6bf71d73d790e27fb9ee" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>





<a rel="noopener" href="https://yuru-uni.com/2023/04/23/solid_principle_d/" title="【C#設計】SOLID原則をUnity公式サンプルで学ぼう～D：依存性逆転の原則～" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://yuru-uni.com/wp-content/uploads/2023/04/thumbnail_solid_d.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【C#設計】SOLID原則をUnity公式サンプルで学ぼう～D：依存性逆転の原則～</div><div class="blogcard-snippet external-blogcard-snippet">はじめに講座トップに戻るこの講座ではプログラミングの設計を勉強する際に避けては通れない「SOLID原則」について学ぶことができます。SOLID原則は有名ですので名前を知っている人も多いかもしれませんが...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://yuru-uni.com/2023/04/23/solid_principle_d/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">yuru-uni.com</div></div></div></div></a>





<a rel="noopener" href="https://blog.chiyuu.co.jp/2024/06/06/dependency-inversion-principle/" title="SOLID原則の依存性逆転の原則(DIP)についてRubyで解説 | 株式会社CHIYUU 公式ブログ" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.chiyuu.co.jp/wp-content/uploads/2024/05/blog_thumbnail-4.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">SOLID原則の依存性逆転の原則(DIP)についてRubyで解説 | 株式会社CHIYUU 公式ブログ</div><div class="blogcard-snippet external-blogcard-snippet">オブジェクト指向プログラミングにおいて、コードの保守性、可読性、再利用性を高めるために、SOLID原則と呼ばれ</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.chiyuu.co.jp/2024/06/06/dependency-inversion-principle/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">blog.chiyuu.co.jp</div></div></div></div></a>





<a rel="noopener" href="https://plainprogram.com/dependency-inversion-principle/" title="【SOLID】依存性逆転原則～大事なのは、抽象にもとづくこと | プレイン・プログラム" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://plainprogram.com/wp-content/uploads/2023/05/dependency-inversion-principle.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【SOLID】依存性逆転原則～大事なのは、抽象にもとづくこと | プレイン・プログラム</div><div class="blogcard-snippet external-blogcard-snippet">依存関係逆転原則 Dependency Inversion Principle 上位モジュールは下位モジュールに依存してはならない。両者は抽象に依存すべき。 抽象は詳細に依存してはならない。詳細は抽象...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://plainprogram.com/dependency-inversion-principle/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">plainprogram.com</div></div></div></div></a><p>The post <a href="https://aichi.blog/dependency-inversion-principle/">依存関係逆転の法則（Dependency Inversion Principle）: Go 言語で柔軟で強い設計を実現するには？</a> first appeared on <a href="https://aichi.blog">AichiLog</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
