アクセシビリティによる実装の隠蔽
オブジェクト指向においては、ユーザーはオブジェクトの内部実装を隠蔽し、外部に公開する必要のある操作 や属性のみを公開させます。また、C#においてはプロジェクト外へのクラスの隠蔽も可能です。この公開範囲を制限する方法がアクセシビリティというものです。
| アクセシビリティ | 参照可能な範囲 |
|---|---|
| public | プロジェクト外からもアクセス可能 |
| internal | 同一プロジェクト内のみアクセス可能 |
| protected | 派生クラスのみアクセス可能 |
| private | クラスの内部のみアクセス可能 |
アクセシビリティの原則
コードの品質を安定させ、設計変更による影響を局所化するために可能な限りアクセシビリティは制限が強くなるようにして下さい。
- クラスは可能な限りinternalにしてpublicなクラスを減らして下さい。
- メソッドはクラスの内部実装上必要で外からアクセスしないものはprivate、継承クラスからアクセスさせたいメソッドはprotectedにします。
- クラスの変数はprivateとして、プロパティを定義します。
- プロパティも変更の必要がない場合はsetterが無いようにします。