1

これは重複した質問かもしれませんが、まだ答えが見つかりません。

リンク 1

カプセル化:

カプセル化は、クラス内のフィールドをプライベートにし、パブリック メソッドを介してフィールドへのアクセスを提供する手法です。フィールドがプライベートであると宣言されている場合、クラス外のユーザーはそのフィールドにアクセスできないため、 クラス内にフィールドが隠されます。このため、カプセル化はデータ隠蔽とも呼ばれます。

リンク 2

カプセル化:

「それは[…]カプセルを構築することを指し、場合によっては概念的な障壁であり、いくつかのもののコレクションの周りにある.」— [Wirfs-Brock ら、1990 年]

「プロセスとしてのカプセル化とは、[…] コンテナ内に 1 つ以上のアイテムを封入する行為を意味します。エンティティとしてのカプセル化とは、1 つ以上のアイテムを保持 (収容、封入) するパッケージまたはエンクロージャを指します。」

「カプセル化が『情報隠蔽と同じこと』であるとすれば、『カプセル化されたものはすべて隠されている』という議論をする人もいるかもしれません。これは明らかに真実ではありません。」

どれと一緒に行けばいいですか?それとも定義を誤解していますか?

4

4 に答える 4

2

カプセル化の定義にデータの隠蔽を含めるべきかどうかについて意見の相違があるため、これは厳密な意見の回答になります。データの隠蔽は OO プログラミングに固有のものではないため、後者の定義の方が正しいと思います。これは、関数/メソッドと一連の変数とのバインディングであるカプセル化を排除しない別の機能です。実際、データの隠蔽は、C や Pascal などの言語での初期のモジュラー プログラミングの特徴でした。

于 2013-09-24T11:42:47.680 に答える