4

OOPの場合、不変と不変は同義ですか?

微妙に違いがあるような気がしますが、よくわかりません。

通常、不変はオブジェクトに適用され、不変は通常、属性/値に適用されると思います。

どちらの場合も、オブジェクトまたは変数は変更されず「真」のままであるため、非常に似ているように見えます。

これらの用語の理解の精度を向上させようとしているので、フィードバックをお寄せいただきありがとうございます。微妙な違いを見落としていると思います。

4

2 に答える 2

6

それらが正しい定義であるかどうかはわかりませんが、私にとって「不変」とはデータ構造が変更されないことを意味し、「不変」とは変更されずに真のままである設定された条件です(ただし、特定のインスタンスには関連しませんデータ) .

不変データ構造を使用すると、不変条件が真のままであることを保証するのに役立ちます。不変条件は変化しないため、以前は真であった不変条件が突然壊れることはありません。

于 2012-10-05T15:51:30.820 に答える
0

不変とは、オブジェクトが存続期間中に変更されないことを指します。

  • 不変の文字列。連結すると、新しい文字列が作成されます。元のものは変更されていません。

不変条件は、指定された期間変更されないという保証です。属性または値として明示的に存在する必要はありません。

  • オブジェクトは常に有効な状態でなければなりません。
  • 操作 Y を実行するには、オブジェクトが状態 X にある必要があります。
  • 操作 X が呼び出された場合、オブジェクトは状態 X であることが保証されます。
  • エンティティは、会社または個人のいずれかになりますが、同時に両方になることはできません。
  • ファイルを同時に開いたり閉じたりすることはできません。
于 2012-10-05T15:54:48.600 に答える