密結合って何がダメ?早く別れるカップルから見る密結合のデメリット💔【大真面目】
🔥 はじめに
エンジニアでも恋がしたい!!
画像: BANDAI CHANNELさんより引用🙇
どうも、最近彼女と別れこのままでは生涯独身男性、まえくんです😇
カップルを見ていて思うことありません?
「あのカップル付き合いたてなのに、仲良くて羨ましいなぁ...」
って。
反面、そういうカップルは
「すぐ別れそうwww」
とかも言われたりしますよね?
それ、、、エンジニア的には
密結合
だからなんです!笑
🎯 ゴール
- カップルの関係性を例に「密結合」のメリデリを知る
- 恋愛、というテーマでわかりやすく「密結合」を知る(笑)
😕 密結合とは?
ソースコードでいうと「AクラスがBクラスの内部実装にベッタリ依存している」状態。
カップルに例えるなら「相手のスマホのパスコード知ってる」「毎日一緒にいないと無理!」みたいな感じ。
class Girlfriend {
String mood = "happy";
}
class Boyfriend {
final Girlfriend gf;
Boyfriend(this.gf);
void cheerUp() {
// 内部実装に依存 → gfの状態にべったり
gf.mood = "happy";
}
}
上記の例では、Boyfriend が Girlfriend の mood に直アクセスしています。
→ 彼氏のテンションが彼女に依存しているカップルです。
これってつまり、
彼女の mood が "happy" なら彼氏も幸せ。
でも "angry" に変わった瞬間...バグ発生(関係クラッシュ)💥
実際のコードでも同じで、依存先がちょっと変わると全部巻き添えになります。
...🧐
彼氏のテンションが彼女に左右されてしまう。
楽しい時はいいんですけどね。
Girlfreinedクラスのmood
がangryやsadの場合は...
考えたくもないですね😇
✅ 密結合のメリット
密結合 = 最初から仲良しが悪い、と言っているみたいですが、もちろんメリットもあります!!
- 初速が速い: コード量少なくすぐ動く → カップルなら「すぐ仲良し!」
- 一体感が強い: 相手のこと全部わかる → まるでprivateまで知ってるレベル
- 将来が確定: 今後のビジネスロジック変更がない → 将来が確実なら問題なし!
- PoC向き: プロトタイプ開発や、恋愛の最初の盛り上がりフェーズには相性良い
❌ 密結合のデメリット
とはいえ...将来何が起こるかわからないのが、人生とプログラミングです。
- 片方が変わると全部壊れる
-
→ これだけでBoyfriendはコンパイルエラー。
class Girlfriend { String feeling = "happy"; // mood → feeling にリネーム }
→ 「引っ越しを機に破局」みたいなやつ。
-
- テストしにくい
- Boyfriend をテストするには、必ず Girlfriend が必要。
- 疑似的にモックを作るのも大変。
- リファクタ困難
- 「ちょっと整理したい」だけで関係が爆発する。
- コードも恋愛も、縛りが強いと柔軟に動けなくなる。
💐 疎結合カップルのススメ
解決策は「インターフェース(契約)」を設けること。
つまり「ここまではお互い責任を持つけど、中身は自由でいいよ」を決めておく。
abstract class Partner {
void cheerUp();
}
class Girlfriend implements Partner {
void cheerUp() => print("笑顔になった😊");
}
class Boyfriend {
final Partner partner;
Boyfriend(this.partner);
void makeHappy() {
partner.cheerUp(); // 中身は知らなくていい
}
}
これなら、
- 彼女が Girlfriend でも
- 未来に Wife でも🥰
- なんなら PetDog でも
Partner を実装していれば問題なし。
恋愛で言えば、
- 「コミュニケーションは最低1日1回」(LINEでも電話でも)
- 「週末はどちらかがデートプラン考える」
みたいな契約を決めておくイメージです。
🗒️ まとめ
- 密結合 = 付き合いたてで超仲良しカップル。速いけど壊れやすい。
- 疎結合 = お互いの境界を大事にしたカップル。安定して長持ち。
- エンジニアも恋愛も、契約(インターフェース)の粒度設計が大事!
最後まで見ていただいた、そこのエンジニアさん。
コードも恋愛も密結合になっていませんか......?
⚠️ あくまでもエンジニア視点での考えです!こと、恋愛において初速が速いから悪いということはありません。
...なるほど、エンジニアってだから多分モテないんだろうな。
Discussion