抽象化の反対は何ですか?[閉まっている]


19

私が理解しているように、抽象化とは、より単純なものから変更せずに、より多くの意味を生み出すときに使用する用語です。これは、ラテン語の動詞abstrahere(「引き離す」)から派生しています。たとえば、テキストは、ビットマップと同様に、バイナリデータの1つの抽象化にすぎません。そのため、コンピューターでは、テキストとビットマップはバイナリデータの上に存在します(バイナリデータの観点から実装されています)。

私の質問は、反対の用語は何ですか?ビットマップをバイナリデータ以外の観点から実装できる、より基本的なもの(モザイクのタイルやパッチワークキルトのファブリックパッチなど)を知りたい場合、何を求めていますか?その言葉はありますか?

抽象化には一般化の意味合いがあり、その逆のプロセスは特殊化です。IDKはそれが役立つかどうか。


7
これは、English.SEに適している可能性があります。
ペテルトレック

3
場合によってはシンプル。物事をより複雑にするだけのひどい抽象化をたくさん見ました; |
ウィリアム

この概念には満足できる言葉がないと思います。そのようにコインを
作ってみましょう

回答:


8

実装。

抽象化は短い言葉であり、現実世界の物の(縮小された)モデルを取得する精神的なプロセスであり、概念またはアイデアに「コンパクト」です。

ですから、反対は概念やアイデアを取り、それを現実の世界のものに変えることです;-)


2
私はこれを補完的な概念としてそれほど反対と呼ぶかどうかはわかりません。同様に、プログラミングの抽象化があるたびに、抽象化が隠れている実装もあります。しかし、それは質問が求めているもののようです。
11

@jhocking車のブレーキとアクセルは反対ですが、それでも補完します。乾杯。
umlcat 14

プラトンの領域から(単なる)物理的現実へのエーテルの抽象化の「顕現」
コナー・コスネット

41

通常

具体化の場合と同様に- C ++コンクリートクラス

場合によっては:

特化-C ++テンプレート特化と同様

2012年6月12日追加:これは素敵な用語です:

具体化 - いくつかのプログラミング言語と同様


6
私は「具体化」の使用に反対しませんが、少し面倒な言葉です...「具体化」の方が良いのではないでしょうか?thefreedictionary.com/concretion
HorusKol

1
確かに結石
ザカリーイェーツ

それでは、コンクリートの後に具体的に設定されていますか?ちょうど尋ねる:-)
JensG 14


4

「コンクリート」は「抽象」の反対であるため、「抽象化」の反対は論理的には「具体化」です。ただし、一般的に抽象化についてのみ話し、それが反対だと考えることはめったにないため、意味のある正反対はありません。


3

ゼロから始めましょう。まず第一に、実際に抽象化とは何ですか?

問題/動機

プログラムを作成するとき、多くの場合、非常に具体的に詳細な問題を解決する必要があります。

抽象化の主な動機は、プログラムが問題全体を単一のユニットとして扱い、注意と理解を必要とする多くの個別の小さな特性を持つ状況に陥る場合です。ここでの問題は、人間がこのような大量のデータを一度に処理するのが難しいことです。

ソリューション:抽象化

あなたがあなたのアイデアを実行するために必要なことだけ理解できるようにするために単純化れた抽象化に詳細なソリューションを抽出します。

たとえば、SQLがオブジェクトに抽象化されるORM(オブジェクトリレーショナルマッピング)を見てみましょう。

抽象化せずにデータベースに新しいアイテムを挿入するには、プログラマーがSQLを知っている必要があります。したがって、新しいアイテムを挿入するには、プログラマはテーブルに新しいアイテムを挿入するためのSQL構文を覚えておく必要があります。

INSERT INTO Items (field1, field2) VALUES (value1, value2)

しかし、抽象化により、プログラマーは自分が何をしたいのかという考えを知るだけで済みます。オブジェクト指向の抽象化は次のようになります。

Item item = new Item(value1, value2)

さらに進んで、SQL自体が、単純な宣言型言語を学習するための価格に完全に対応している、高度なデータストレージ構造およびアルゴリズムの膨大な抽象化であるという事実について考えることもできます。


抽象化の反対

抽象化は実際に手元にある典型的な概念を知るだけで十分であると今定義したものに基づいて、抽象化の反対は実際にはesotericaであると簡単に推測できます。対象の特性。


1

「注意散漫」-コードが実行されたときに実際に起こることの多くの接線方向の詳細を認識せずにコードの一部を理解できない場合に起こることのように。


0

抽象化はabs-trahereに由来するものであり、 "draw from"として翻訳するのが最善であると思います(ただし、文字通りの翻訳は混乱を招きます)。私はそれをブログ投稿で説明しようとしました。

抽象化は、何か具体的なものから本質引き出すプロセスです。通常、具体的なものは非常に複雑です。たとえば、見ることができる最も近い椅子を見ると、実際にそれを構成する多くの詳細があります。その材料、構造、形状など。しかし、これらのことはどれも本当に重要ではありません。肝心なのは、座ることができるということです。
何かの「抽象」は、見たときに見えるものです。その椅子を見ると、椅子が見えます。レスラーは実際に代わりに武器を見るかもしれません。

したがって、抽象化の結果は、特定の観点からの何かの本質です。

ビットマップまたはテキストの場合、抽象化とは、与えられた値を特定の目的を満たす何かと考えることです。手元のプログラミング言語に応じて、言語のセマンティクス内で自分の考えを表すことができます。
しかし、あなたにとっては、基礎となるデータが「バイナリ」であるかどうかは重要ではありません。13ビットの穴あけパターンでエンコードされたデータを含むロール紙からリアルタイムで読み取られた場合も同様に機能します。あなたは本当に気にしません。
もちろん、メモリに保存されたバイナリデータを使用して具体的なビットマップを実装することには、いくつかの明らかな利点があり、ほとんどの人はそれを好むでしょう。それでも、たとえばビットマップ情報を実際にエンコードする方法はまだたくさんあります。また、互いに異なるアプローチを使用することも理にかなっているかもしれません。ただし、いくつかの制約に基づいて表現を選択する小さなコードを除き、ビットマップの具体的な性質についての知識は必要ありません。あなたはあなたの観点から何が重要かを気にします。この例では、おそらくピクセルデータを操作するためのいくつかのメソッドです。

抽象化は実際には何よりもまず(何かの理想的なモデルのように)アイデアであるため、反対は「化身」と呼ばれるかもしれません。プログラミングはめったに肉体的なものではないので、抽象化は多くの場合インターフェースとして表されますが、「実装」に進む可能性があります。
@Liorによると、具体化は非常に適した言葉でもありますが、実際の目標(つまり、アイデアの実装)よりも手段(つまり、必然的に具体的なものをレンダリングすること)に重点を置いています。


0

抽象化は、何かを一般化するために詳細を削除するプロセスです。抽象化が詳細の削除である場合、おそらく抽象化の反対は仕様です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.