はじめに
qnote Advent Calendar 2023 21日目
オブジェクト指向とは?と聞かれた時、
ボヤッとイメージはあるものの言葉で説明できない・・・
ふとそんなことを感じたため、改めて自分の中で整理をしてみました。
Q.そもそもプログラミングって...?
A.指示に対してその通りにコンピュータを動かすようにする(プログラムを作る)こと
この時、プログラムを作る中での"表現方法"として、
①オブジェクト指向プログラミング
②手書き型プログラミング
③関数型プログラミング
など分別されます(他にもあるが上記が代表的なもの)
その中でオブジェクト指向とは
「"モノ"と"操作"に分けてプログラムを組みコンピューターに動作させる表現方法」
NINTENDO switch で想像してみた・・・
ゲーム機である NINTENDO Switch を例に挙げてみます
NINTENDO Switchは、
①ゲーム機である本体
②ボタンの操作(ex)マリオを走らせるBボタン
といった、①本体(=オブジェクト)+ ②操作により
初めて遊べるようになります。
①オブジェクト②操作の2つが揃うことで初めて完成、ということです。
さらに例を出します
あるアプリケーションに3つのボタンがあるとします。
「登録」「編集」「削除」
共通して
「width: 100px」「background-color: red;」「color: white;」
で作られるボタンだとする場合、
オブジェクト指向を使わなければ
同じボタンのプログラムを3回書かなければいけなくなります
(さらに多いと腱鞘炎・・)
「ボタン」 = 「オブジェクト」 として1つ作ってしまえば
別のボタンを作るときには変えたい部分(色など)のみ変えるだけで済みます。
これにより「効率的に開発」できる、ということです。
もう一つのメリット
もう一つメリットとしては「エラー対処のしやすさ」が挙げられます。
例えば、
「ボタン」の押下で「登録ができる」「ページが移行する」
というアプリケーションをオブジェクト指向の定義で表すと、
「ボタン」=「モノ(オブジェクト)」
「登録ができる」=「操作1」
「ページが移行する」=「操作2」
となります。
ではこの時エラーが出たとして・・
モノに対して
操作1に対して
操作2に対して
と分別されてエラー分が出てくるので原因特定がしやすくなります!やったー!
まとめ
簡易的ですがなんとなく説明はできそうになりました
改めて自分の中で言語化するとスッキリするな〜と感じました。