カプセル化

内部状態を直接操作させず、許可した操作を通じて整合性を守る設計の考え方。

作成日: 2026-07-21 / 更新日: 2026-07-21

概要

カプセル化は、オブジェクトの内部状態を外部から直接変更させず、公開された操作を通じて変更する考え方です。

目的はフィールドを private にすることではなく、オブジェクトが不正な状態にならないように変更ルールを一か所へ集めることです。

public void capture() {
    if (status != PaymentStatus.AUTHORIZED) {
        throw new IllegalStateException("売上確定できない状態です");
    }
    status = PaymentStatus.CAPTURED;
}

setStatus を公開して自由に変更させるより、業務上意味のある操作を公開した方が状態遷移を守りやすくなります。

AI生成コードを見る観点

注意点

すべてを隠すことが目的ではありません。利用側が必要とする情報や操作は、意図の分かる形で公開します。

参考文献

更新履歴

  • 初版作成

関連項目

このページを参照しているページ