抽象化は、コンピュータサイエンスにおいて、より大きなものの簡略化された表現を提供します。必要な情報だけを抜き出し、他のすべてを隠します。
関数は再利用可能な抽象化です。呼び出されると、ユーザーは関数の利益を得られ、関数全体のコードを再記述したり、見る必要がありません。
コーディング言語での一般的な例はprint()です。そのほとんどのコードは隠されているため、コーダーは印刷すべきものに集中でき、他のコードを気にする必要はありません。
なぜ抽象化を作成するのか
抽象化はプログラムを整理された状態に保ち、複雑さを減少させ、コードの更新を容易にします。
ショップの例
ゲーム内ショップで異なる2つのバックパックを販売しているとしましょう。2番目のバックパックのコードはわずかな変更(異なる名前や販売価格など)を加えた形でコピーされていました。


ここでは、コードは抽象化されていません。各バックパックはそれぞれ独自のスクリプトを持っています。次の情報を追加しようとするとどうなるでしょうか?
更に20個のバックパック。
一部のバッグが他のバッグよりも多くのアイテムを保持できるようにする機能。
バックパック全品25%オフのホリデーセール。
デザインの抽象化
バックパックスクリプトを別々に持つことは、新しいバックパックの追加や更新を時間がかかるものにします。代わりに、抽象化を作成して多くの異なる場所での更新を避けることができます。
抽象化をデザインするには、次のことを決定します:
再利用されるコードの部分。
毎回異なる要素。
抽象化は、変化する情報を抽出し、残りを隠すべきです。バックパックの例では、異なる部分はバックパックの名前、価格、および運べるアイテムの数です。したがって、抽象化の例として、バックパックの名前を受け取り、その価格と容量を返す関数をデザインできます。
![]() | ![]() |
抽象化なし | 抽象化あり |
| 4つの異なるバックパック、更新するための4つの異なる場所。 | ユニークな情報を検索するために関数を使用。更新するための唯一の場所。 |
まとめ
抽象化は、詳細を省くことによって、より大きなものの簡略化された表現を提供します。抽象化を作成するかどうかを決定する際には、頻繁に再利用され、しかも毎回小さな変更が加えられるコードを探してください。たとえば、バックパックのような汎用アイテムは、価格と容量を調べる再利用可能な関数に抽象化することができます。
抽象化を用いてコードを計画し構造化する時間をかけることは、コーダーが重要なことに集中できるようにします。この時間への投資はプログラムをよりよく整理された状態に保ち、更新を容易にします。

