推奨されます, 2019

エディターズチョイス

抽象化とデータ隠蔽の違い

抽象化とデータ隠蔽は、オブジェクト指向プログラミングの重要な概念です。 抽象化は、背景の詳細​​を含まずに重要な特性を表現する方法です。 一方、データ隠蔽はデータをプログラムによる直接のアクセスから隔離します。 とはいえ、両方の概念はその意味では似ているように聞こえますが異なります。 抽象化は、同じプロパティを持つ実世界のオブジェクトを設計するためのユーザー定義のデータ型を作成する方法を提供します。 データ隠蔽に対してデータと機能を不正アクセスから保護します。

比較表

比較基準抽象化データ隠蔽
基本
関連情報のみを抽出し、重要でない詳細を無視します。プログラムの一部からデータを隠します。
目的複雑さを隠すために。カプセル化を達成するため。
クラス
クラスは抽象化を使用して、新しいユーザー定義データ型を派生させます。データ隠蔽は、そのデータを非公開にするためにクラスで使用されます。
に焦点を当てる
データの観察可能な動作カプセル内のデータの使用を制限または許可する。

抽象化の定義

抽象化は主に複雑さを隠すために使用されます。 それは、他のすべてのタイプのオブジェクトと区別するために必要なオブジェクトの特性を示します。 抽象化は、オブジェクトの外観に集中します。 オブジェクトにとって、抽象化はその重要な振る舞いをその実装から切り離します。 視聴者の見通しに対する概念的な境界を指定します。 適切な抽象化は、読者またはユーザーにとって重要な詳細を強調し、無関係で逸脱している機能を抑制します。

ユーザー定義データ型は、実世界のオブジェクトを設計するためのクラス内で抽象属性および関数を定義することによって作成されます。 これらの属性は情報を含んでいるのでデータメンバと呼ばれます。 同様に、これらのデータを操作する関数はメンバー関数として知られています。 データ抽象化は、背景の説明を含まずに必須のプロパティを表すクラスとして実装されています。

抽象化のタイプ

  • 手続き抽象化 - 指定された機能を持つ一連の命令を含みます。
  • データ抽象化 - データオブジェクトを指定して記述するデータのセットです。
  • 制御抽象化 - 内部の詳細が指定されていないプログラム制御メカニズムです。

データ隠蔽の定義

データ隠蔽は、取得する必要がないプログラムのコンポーネントからデータを隠すことを意味します。 プログラムによる直接アクセスからのデータの分離は、データ隠蔽または情報隠蔽と呼ばれます。 データ隠蔽を実装するために、クラスのデータおよび機能が不正アクセスから保護されている場合、カプセル化が使用されます。 これとは対照的に、データと機能が単一の単位に入れられている場合はカプセル化と呼ばれます。 それ故、データ隠蔽はカプセル化を達成するのを助ける。 オブジェクトの機能詳細は、アクセス指定子を使って処理できます。

データ隠蔽の概念を使用して、クラス内のデータと関数は、クラス外の関数から誤ってアクセスされ、偶然の変更から保護されることがないように、非公開にされます。

抽象化とデータ隠蔽の主な違い

  1. 抽象化は関連情報を表示し、重要ではない詳細を拒否します。 一方、データ非表示は、プログラムの一部からデータを隠すために使用されます。
  2. 抽象化の以前の目的は、プログラムまたはソフトウェアの複雑な実装の詳細を隠すことです。 それどころか、データ隠蔽はカプセル化を達成するために実施される。
  3. 抽象化は、新しいユーザ定義データ型を作成するためにクラスで使用されます。 反対に、クラスではデータを非表示にするためにデータ隠蔽が使用されます。
  4. 抽象化はデータの観察可能な振る舞いに集中しますが、データ隠蔽はカプセル内のデータの使用を制限または許可します。

結論

抽象化とデータ隠蔽の両方とも、必要な情報を表示し、必須ではない詳細を隠すことを目的としていますが、明確な目的のためです。 抽象化は、実装の複雑さを隠すことを強調し、データを隠すことは、不正アクセスに対するデータの保護に重点が置かれています。

Top