Encapsulation
カプセル化はデータとその操作を結合し、内部実装を隠してインターフェースだけを公開することで、外部からのアクセスを制御して不変条件を守る。
目的
情報隠蔽によって結合度を下げ、オブジェクトの不変条件を保護する。オブジェクト指向の中核。
メカニズム
アクセス制御:public/private/protected。private フィールドはクラス内からのみアクセスでき、public メソッドが制御されたアクセスを提供する。不変条件はメソッドの入口/出口で維持される。Java のレコード、C# のプロパティ、Rust の pub はカプセル化の機構である。
ユースケース
- オブジェクト指向設計
- 情報隠蔽のテクニック
- API の設計