【ちゅうしょうか】
抽象化 とは?
💡 「中身を知らなくても使える」を実現する魔法
📌 このページのポイント
抽象化ってどういうことなの?
車の運転を思い浮かべてみて。ハンドルを回せば曲がるし、アクセルを踏めば加速する。でもエンジンの燃焼の仕組みやギアの切り替え方法なんて知らなくても運転できるよね。プログラミングの抽象化もこれと同じで、複雑な処理を隠して「使う人に必要な操作だけ」を見せるんだよ。
具体的にプログラミングではどう使うの?
たとえばsendEmail(to, subject, body)という関数を作れば、使う側はSMTPの接続手順や文字エンコーディングの処理を知らなくてもメールを送れるよね。中身がどう変わっても、関数名と引数が同じなら使う側は修正不要。これが抽象化の力だよ。
抽象化で気をつけることってある?
ちょうどいい抽象化のレベルってどうやって判断するの?
Rule of Threeという考え方があって、「3回同じパターンが出てきたら抽象化を検討する」というものだよ。1回目は直接書く、2回目もまだコピーでOK、3回目で初めて共通化する。早すぎる抽象化(Premature Abstraction)は、後から要件が変わったとき無駄な抽象層が足かせになるんだ。経験を積むと「この部分は将来変わりそうだな」という嗅覚が身についてくるよ。
まとめ:ざっくりこれだけ覚えればOK!
「抽象化」って出てきたら「複雑な詳細を隠して必要な部分だけ見せるようにする設計の考え方だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「abstraction」 = 抽出・抽象
💬 abstractは「引き離す」が語源。具体的な詳細から本質を引き離して取り出すイメージだよ