クラスとは?
クラスとは、関連性の強いサブルーチンとグローバル変数を1つにまとめて粒度の大きいソフトウェア部品を作ること。従来はバラバラだったサブルーチンとグローバル変数をまとめることができる。
クラスのメリット
管理対象の数を減らせる。
構造化プログラミング時代(C言語の時代)に例えば、10000あるサブルーチンと、グローバル変数を使っていたのであれば、クラスに10個のサブルーチンをまとめることで、グローバル変数とサブルーチンを入れ込めば1桁減らし1000個のクラスでまとめることができるようになります。
メソッド
構造化プログラミングでは「サブルーチン」と呼んでいたものです。
インスタンス変数
構造化プログラミングでは「グローバル変数」と呼んでいたものです。
ファイルの命名を簡略化し、探しやすくなる。
構造化プログラミング時代は、全てのサブルーチンに違う名前をつける必要があったため、fileOpen、fileCloseというように冗長な名前になってしまっていました。オブジェクト指向で作る場合は、Fileクラスのopenメソッド、closeメソッドというようにファイルの命名を簡略化できる効果があります。
1 2 3 4 5 6 |
class File { // ファイルをオープンする。 void open() {} // ファイルをクローズする。 void close() {} } |
また、ファイル名が簡略化することで開発者も該当のソースを探しやすくなります。
グローバル変数を隠せる。
アクセス修飾子を使って、インスタンス変数を外部のサブルーチンからアクセスできないようにできます。
1 2 3 4 5 6 7 8 9 |
class File { // privateで隠す。 private string name // ファイルをオープンする。 void open() {} // ファイルをクローズする。 void close() {} } |
なので、プログラムの影響範囲をクラス内に局所化することができます。これで、構造化プログラミング時代に保守性悪化の原因だったグローバル変数を使わずにプログラムを書くことが可能になるのです。
同じようなものをたくさん作る。
別のオブジェクトを複製して作りたいといった場合は、クラスを使えばインスタンスを何個も生成することで、可能です。
構造化プログラミング時代だとグローバル変数にを配列化するなどして実装するしかなかったのでサブルーチンのロジックも複雑になってしまいます。
この記事へのコメントはありません。