推奨されます, 2019

エディターズチョイス

データ隠蔽とカプセル化の違い

データの隠蔽とカプセル化はどちらもオブジェクト指向プログラミングの重要な概念です。 カプセル化とは、データメンバとメソッドの実装をクラス内にラップすることを意味します。 クラス内のすべてのデータメンバとメソッドの実装がカプセル化されている場合、メソッド名はそのクラスのオブジェクトに対して実行できるアクションを表すことしかできません。 データ隠蔽とは、クラスのメンバーを違法または不正なアクセスから保護することを意味します。 データ隠蔽とカプセル化の主な違いは、データ隠蔽はデータセキュリティに重点を置き、カプセル化はシステムの複雑さを隠すことに重点を置くことです。 データ隠蔽とカプセル化の間には、他にもいくつかの違いがあります。それらについては、以下の比較表で説明します。

比較表

比較基準データ隠蔽カプセル化
基本データを隠すことは、複雑さを隠すことと同時にデータセキュリティについても心配します。システムの複雑さを隠すためにデータをラップすることに関するカプセル化の問題。
フォーカスデータ隠蔽は、カプセル内のデータの使用を制限または許可することに焦点を当てています。カプセル化は、複雑なデータの包み込みまたは折り返しに重点を置いています。
アクセス指定子データを隠しているデータは常に非公開でアクセス不能です。カプセル化中のデータは、プライベートまたはパブリックにすることができます。
プロセスデータ隠蔽は技術であると同時にプロセスでもあります。カプセル化はデータ隠蔽におけるサブプロセスです。

データ隠蔽の定義

データ隠蔽は、オブジェクト指向プログラミングにおける概念であり、クラスのメンバーの不正アクセスからのセキュリティを確認します。 データ隠蔽は、データメンバーが他のソースから操作されたりハッキングされたりするのを防ぐ技術です。 データはプログラムの中で最も敏感で揮発性の高い内容であり、それを操作すると誤った出力になる可能性があり、データの整合性も損なわれます。 データ隠蔽は、アクセス修飾子(private、public、protected)を使ってJavaで制御されます。 公開されているデータはクラスの外部からアクセス可能であるため、データを隠したり、外部からのアクセスを制限したい場合は、データを非公開として宣言してください。 プライベートデータはそのクラスのオブジェクトにのみアクセス可能です。

例を使ってデータの隠蔽を理解しましょう。 CheckAccountクラスを宣言し、そのクラス内にデータメンバの残高があるとします。 ここで、口座の残高は機密情報です。 外部のアプリケーションがアカウント内の残高をチェックすることを許可することはできますが、外部のアプリケーションがbalance属性を変更することを許可することはできません。 したがって、balance属性をprivateと宣言すると、外部アプリケーションからbalanceへのアクセスを制限することになります。

データを隠すことでシステムの複雑さも軽減されます。 カプセル化はデータ隠蔽のサブプロセスであるため、データ隠蔽はカプセル化を介して達成することができる。

カプセル化の定義

カプセル化とは、クラスの複雑さを隠すために、コードとデータをカプセルにまとめたものです。 カプセル化は、アクセス指定子(private、public、protected)とはあまり関係がありません。 カプセル化では、クラス内のメンバーはプライベート、パブリック、または保護されたメンバーになります。 クラスの非公開メンバーはそのクラスのオブジェクトにのみアクセスでき、パブリックメンバーはクラスのオブジェクトにアクセスできるだけでなく、クラスの外部からもアクセスできます。 カプセル化は、システムのエンドユーザーが、システムの処理方法ではなく、システムの処理方法を習得するのに役立ちます。

車の例を使ってカプセル化を理解しましょう。 車の運転手が車のギアを変更したい場合、彼が必要とするのは、単に車の肝臓作動ギアの位置を変更することであり、それは車のギアを変更することである。 運転手は、ギアチェンジの背後にあるメカニズムは何か、の複雑さを理解する必要はありません。 これが、カプセル化によってシステムの複雑さが軽減される方法です。 カプセル化により、システムはエンドユーザーによって操作しやすくなります。

データ隠蔽とカプセル化の主な違い

  1. カプセル化は、プログラムの複雑さを隠すことを扱います。 一方、データ隠蔽はプログラム内のデータのセキュリティを扱います。
  2. カプセル化は、複雑なデータをラップ (カプセル化)することに重点を置いて、ユーザーに対してより単純なビューを提示します。 一方、データの隠蔽は、データのセキュリティを保証することを目的として、データの使用を制限することに重点を置いています。
  3. カプセル化では、データは公開または非公開にすることができますが、データ非表示では、データは非公開にする必要があります。
  4. データ隠蔽は技術であると同時にプロセスでもありますが、カプセル化はデータ隠蔽におけるサブプロセスです。

結論:

私は、データの隠蔽とカプセル化の両方がシステムの実装において重要であると言って結論を述べます。 どちらもデータの隠蔽がデータのセキュリティに焦点を当てている場合は密接に関連しており、カプセル化はアプリケーションをよりユーザーフレンドリーにするためにシステムの複雑さを軽減することに焦点を当てています。

Top