*の方向性はどうでもいい

プログラミングなどの学習履歴として最初は書いてたけどもう何でもいいやと思って今に至る

オブジェクト指向とは何なのか自分なりに考えてみました

Javaからプログラミングを学び始めてずっとオブジェクト指向って何のことなのか自分なりに考えてきました。

 

オブジェクト指向でなぜつくるのか」という本を購入してオブジェクト指向とは何なのか、その答えがみつかればと思いましたが概要についてはあまり良いとは言えませんでした。

 

何か自分で納得できる分かりやすいものはないか考えていた時にそういえば今はないと思うけど昔はテレビデオっていうものがあったことを思い出しました。(下の画像)

f:id:ayshi:20161105160032p:plain

 

今の若い人は知らないかもしれませんが、テレビとビデオデッキが一体化したものがありました。オブジェクト指向のメリットはテレビデオではなくテレビとビデオデッキを分けることにあると思いました。

テレビデオは修理するときにビデオデッキに原因があるのか、テレビに原因があるのかすべて分解しないと原因が特定できないというデメリットがあります。そうなると修理が完了するのにめちゃくちゃ時間がかかることが分かります。しかも特定できたとしてもすべての部品が一つにつながっているので本来は一カ所だけ修理すればいいところをその箇所に関連したところの部品等を置き換えたりものすごく手間がかかってしまいます。

 

でもこれがテレビとビデオデッキに分かれていたらどうでしょうか?

どちらの調子が悪いかテレビデオに比べてはるかに早い時間で特定できますし、テレビとビデオデッキが別々なのでどちらか片方だけ修理すればいいので手間がかかりません。

 

これをプログラミングにおきかえるとテレビデオのような構成のコードを想像してみてください。。

不具合が出ただけで何万行もあるコードを上から順にみていって原因を特定するだけでも一日で済んだらラッキーではないでしょうかというくらいのレベルだと思います。

修理だけで何日もかかっていたらメンテナンスとしては最悪な状況になってしまいます。

 

ではこれがテレビとビデオデッキに分かれているようなコードの構成になっていたらどうでしょうか。

どちらかに原因があるわけだからコードを見ていって原因を特定するための時間が大幅に削れます。メンテナンスとしては有効です。

 

オブジェクト指向が何なのかを私が自分で納得できる対象を見つけられたのは良かったと思います。今後分かりにくい用語やシステムを分かりやすく説明できるようにしていくことも一つのテストと思いますので精進していきます。