インスタンス変数・カプセル化・グローバル変数

インスタンス変数とカプセル化

つまり適切にカプセル化されたインスタンス変数は、グローバル変数のメリットとモジュールの疎結合化という本来矛盾する要素の両立を実現する

では何をインスタンス変数にすべきか

一時的なデータをインスタンス変数に入れるとクラスの利用者が不便になるだけでなく、そのクラスに手を加えるときもインスタンス変数が「クラス内のグローバル変数」になってしまい、クラスが大きくなるにつれて保守性がどんどん低下します。

こういった一時的なデータはメソッドの引数と戻り値、またはローカル変数として受け渡す必要があります。

基本的にはクラス内でもメソッドには引数と戻り値でやりとりするという原則で一貫すべきなのか!

参考

qiita.com