3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

qnoteAdvent Calendar 2023

Day 21

オブジェクト指向を言語化してみた

Last updated at Posted at 2023-12-21

はじめに

qnote Advent Calendar 2023 :cat: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に対して

と分別されてエラー分が出てくるので原因特定がしやすくなります!やったー!

まとめ

簡易的ですがなんとなく説明はできそうになりました
改めて自分の中で言語化するとスッキリするな〜と感じました。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?