堅牢性を獲得する章

2.4. クラスの可視性

『目的』

クラスの可視性をきちんを見極めましょう。

『Before』

トップレベルのクラスにはpublicとpackage-privateの2つの可視性が設定できます。

これはpublicクラスです。

public class Hoge {
    :
}

publicとする必要があるのかいま一度考えてみましょう。
必要もないのに公開していたら、意図せずに外部から使われてしまうかもしれません。
そうなると、利用側の影響を無視することができなくなってしまいますね。
そうすると、publicにしたクラスは一生サポートし続けなければなりません。

『After』

他のパッケージから利用されることがないのであればpackage-privateクラスにしましょう。

class Hoge {
    :
}

パッケージに閉じた実装となり、外部からの利用による影響を気にする必要がなくなります。
気にせず修正・置き換え・削除ができるわけです。

さらに、package-privateとしたクラスが一つのクラスからしか利用されないのであれば、 そのクラスの、 privateな、ネストしたクラスにすることも検討できるでしょう。

class Hoge {
    :
    /* Hoge でしか使わないクラス */
    private class Foo {
        :
    }    
}

『まとめ』

クラスを不必要に外部に公開してしまうと面倒なことになりかねません。
なるべく閉じこめるように心がけましょう。

< 前のページへ
お問い合わせ
  • ようかん
  • SG Labs(エスジー ラボ)
  • ITERACY
  • RiceLog(ライスログ)
  • Salesforce導入コンサルティング
  • SES営業向け用語講座

Pagetop