プログラミングにおける抽象化とは、最も必要な情報だけを引き出し、それ以外はすべて隠してしまうということです。
関数は再利用可能な抽象化です。ユーザーは、関数全体のコードを書き直したり、コードを見たりしなくても、関数の利点が分かります。一般的な例は print() です。この関数は出力ウィンドウに表示するというものですが、プログラマーはただ単に表示するものだけを渡せば良いわけです。print() 内の処理を気にする必要はないのです。
抽象化する理由
抽象化はプログラムを整理し、複雑さを軽減し、コードの更新を非常に簡単にします。
店舗例
2種類のバックしか販売していないゲーム内ショップがあるとします。2番目のバックのプログラムは、バックの名前と販売価格など、わずかな変更を加えてコピーして作成します。
ここではプログラムは抽象化されていません。各バックには独自のスクリプトがあります。以下を追加しようとするとどうなりますか?
- さらに20個のバックの販売
- 一部のバッグが他のバッグよりも多くのアイテムを保持できる能力を持つ
- ホリデーセール、すべてのバックが25%オフ
抽象化の設計
それぞれのバックでスクリプトを使用すると、バックの追加と更新に時間がかかります。代わりに、抽象化を作成して、非常に多くの異なる場所で更新を行う必要がないようにします。
抽象化を設計するには、次のことを決定します。
- コードのどの部分を再利用するのか
- どの要素が毎回異なるのか
抽象化なし | 抽象化あり |
---|---|
4つの異なるバック、4つの異なる場所にあるスクリプトを更新する。 | 関数を使用して、バックの情報をテーブルから検索する。更新するスクリプトは 1 つだけ。 |
結論
抽象化は、細部を省くことによって、より大きなものの簡略化された表現を提供します。抽象化を行うかどうかを決定する際には、頻繁に再利用され、その都度小さな変更が加えられるようなコードを探すとよいでしょう。例えば、バックのような一般的なアイテムは、価格と容量を調べる再利用可能な関数に抽象化することができます。
抽象化されたコードを計画し、構造化するために時間をかけることで、プログラマーは重要なことに集中することができます。このように時間をかけることで、プログラムをよりよく整理し、更新を容易にすることができます。