![見出し画像](https://assets.st-note.com/production/uploads/images/30054214/rectangle_large_type_2_a20cf6d2429bef42598f031b931e1cb6.jpeg?width=1200)
オブジェクト指向とは vol.39
プログラミングを行っていてオブジェクトというものを聞いたことがあるだろう。
オブジェクト指向とは何なのか。今回はオブジェクト指向について書いていこう。
1.オブジェクト指向とは
オブジェクト指向に明確な説明はないといわれている。しかし、そう言われているのだが、共通した事柄から、定義だと思えるものはある。
オブジェクト指向の定義とは、開発するときに部品化して考えるということがオブジェクト指向の定義だと思う。
部品化というのはこれまでもパッケージを分けたり、クラスやメソッドでも分けてきた。それが部品化だ。
実際どのように部品化していくのかざっくり考えてみよう。
2.オブジェクト指向を考えてみる
ここでよくたとえられている例だが、ATMで例えてみよう。
現在ではATMはどこにでもある。その昔までは両替商というものがあった。
両替商はお客の帳簿を参照してお金の預かりや出金をしていた。
現代では、その両替商の役をATMが担っている。何円預かったり引き出したり、そして両替商が行っていた帳簿の更新もATM越しで帳簿代わりのデータベースに書き換え更新を行っている。
登場するものをまとめてみよう。
まずはお金をおろしに来たお客さん、両替商、帳簿大きくこの三つだ。
ではそれぞれが何を行っているのかも考えてみよう。
まずはお客さん・何円引き下ろすというリクエストをする。
両替商・何円おろすかというリクエストを聞き、帳簿を参照する。
・残金があれば、お金を引き出す。
・帳簿に書いてある金額から、引き出す金額を差し引く。
・帳簿を差し引いた金額に更新する。
・両替商は引き出した金額をお客さんに渡す。
お客さん・お金を受け取る。
ざっくりこのような流れだ。
これをプログラムで両替商の役を作るとするなら、
・リクエストをもらいそのリクエストを他のクラスに渡すクラス。
・もらったリクエストをもとにデータベースを参照するクラス。
・データベースから参照した金額を引き出したい金額から差し引く計算をするクラス。
・計算後の値を受け取り、データベースを更新するクラス。
・引き出す金額が足りていた時に、お金を渡すクラス。
大変ざっくり分けるとこのようになる。
他にもお金を渡すときの制御を行うプログラムなども必要になってくると思う。また引き出し以外のこともできるようにする必要が出てくる。
もしそのようなことを一つのクラスで書き切ろうとしたとき長くなりすぎてしまい、エラーが起きた時に対処できない。
ざっくりではあるがこのようにプログラムを分けて書く考え方をすることで実際に書くときはまだ書きやすくなると思う。
またオブジェクトという時、クラスだあったりメソッドやパッケージのことを言っていることもある。
3.まとめ
オブジェクト指向は、考え方のことであり現実世界の事象をプログラムにしようとした時に、登場するものや役割を分けてプログラムを作っていくこと。
一つのクラスに書ききるのではなく、役割を分けてクラスを作成していくこと。
それがオブジェクト指向だ。
今回はプログラムのぎじゅ的な部分というよりも考え方的な部分であった。
今回は以上。
では、また次回
元体育会系文系エンジニア石黒