ゼロから始めましょう。まず第一に、実際に抽象化とは何ですか?
問題/動機
プログラムを作成するとき、多くの場合、非常に具体的に詳細な問題を解決する必要があります。
抽象化の主な動機は、プログラムが問題全体を単一のユニットとして扱い、注意と理解を必要とする多くの個別の小さな特性を持つ状況に陥る場合です。ここでの問題は、人間がこのような大量のデータを一度に処理するのが難しいことです。
ソリューション:抽象化
あなたがあなたのアイデアを実行するために必要なことだけを理解できるようにするために、単純化された抽象化に詳細なソリューションを抽出します。
たとえば、SQLがオブジェクトに抽象化されるORM(オブジェクトリレーショナルマッピング)を見てみましょう。
抽象化せずにデータベースに新しいアイテムを挿入するには、プログラマーがSQLを知っている必要があります。したがって、新しいアイテムを挿入するには、プログラマはテーブルに新しいアイテムを挿入するためのSQL構文を覚えておく必要があります。
INSERT INTO Items (field1, field2) VALUES (value1, value2)
しかし、抽象化により、プログラマーは自分が何をしたいのかという考えを知るだけで済みます。オブジェクト指向の抽象化は次のようになります。
Item item = new Item(value1, value2)
さらに進んで、SQL自体が、単純な宣言型言語を学習するための価格に完全に対応している、高度なデータストレージ構造およびアルゴリズムの膨大な抽象化であるという事実について考えることもできます。
抽象化の反対
抽象化は実際に手元にある典型的な概念を知るだけで十分であると今定義したものに基づいて、抽象化の反対は実際にはesotericaであると簡単に推測できます。対象の特性。