見出し画像

#6 (終)オブジェクト指向のメリット

オブジェクト指向に関して自分なりの理解を記事にしています。
これまで、オブジェクト指向の要素についてサンプルベースで自分なりの理解を記事にしてきました。

今回はオブジェクト指向のメリットという形で今までのまとめをしていきます。

オブジェクト指向のメリット
1.再利用性:
・一度作成したオブジェクトやクラスは、異なるプログラムで再利用することが容易です。
2.保守性と拡張性:
・プログラムの特定部分を独立させることで、変更や拡張が容易になります。
3.柔軟性と効率性:
・ポリモーフィズムにより、異なるオブジェクトを同一の方法で扱うことができます。
4.モジュール性:
・オブジェクトごとに分割されているため、チームでの開発がしやすくなります。
5.理解しやすさ:
・現実世界のオブジェクトを模倣するため、直感的に理解しやすい構造を持っています。

ChatGPT

ChatGPTの説明です。今回もお世話になります。

6-1.再利用性

1.再利用性:・一度作成したオブジェクトやクラスは、異なるプログラムで再利用することが容易です。

ChatGPT

クラスは役割を意識して作成するかと思います。データベース制御用のクラス、ネットワークアクセス用のクラスなどなど。
役割が明確であるほど、再利用は容易になるかと思います。

今まで役割が分からず、使い方に困った独自クラスに出会った苦い経験から目を逸らしつつ。。。

再利用性の高いクラスを作成するためには、オブジェクト指向言語をただ使えば良いのではなく、オブジェクト指向についてある程度理解が必要という点に注意。

6-2.保守性と拡張性

・プログラムの特定部分を独立させることで、変更や拡張が容易になります。

ChatGPT

「特定部分を独立」とは、プログラムを役割ベースのクラスで分けることを言っていると思います。

「変更が容易」とは、例えば仕様変更など発生した場合、どのクラスを変更するか分かるか特定しやすいことを指します。
雑な例ですが、SQLのSELECT句に項目が増えた場合、まずはデータベースを制御しているクラス付近に影響があることが分かります。

「拡張」は継承のことですね。親クラスを継承することで処理を上書き出来ます。

6-3.柔軟性と効率性

・ポリモーフィズムにより、異なるオブジェクトを同一の方法で扱うことができます。

ChatGPT

継承することで、子クラスが親クラスのメソッドをそのまま引き継ぐ・または上書きすることで得られる恩恵のことです。
とても便利なのですが、説明が大変。以下の記事に書かせていただいています。

6-4.モジュール性

・オブジェクトごとに分割されているため、チームでの開発がしやすくなります。

ChatGPT

規模の大きい開発でオブジェクト指向を使用する場合、プログラム設計以前の段階でクラスを分けます。
クラスごとに担当が分かれることが多いため、役割分担し易いです。

これはオブジェクト指向を使う大きなメリットです。

6-5.理解しやすさ

・現実世界のオブジェクトを模倣するため、直感的に理解しやすい構造を持っています。

ChatGPT

オブジェクト(クラス)は分け方は設計者による部分が大きいですが、現実に照らし合わせて分かり易く作ることが一般的です。
以下の記事で書いたかな。

例えば
・「人間」「犬」「猫」といった生き物
・「机」「ボール」「掃除機」といった道具
・「画面」「ボタン」「スクロールバー」といったシステムの要素
・「追加処理」「更新処理」「完了通知」といった実体をもたない概念
・「受信者」「通知者」「観測者」といった役割
などなど
こうした現実にある実体あるなし問わず存在するモノを「オブジェクト」とすることが出来ます。

#2 (続)オブジェクト指向って何だっけ

このように現実に対応させた分け方をすることで、このオブジェクト(クラス)が何をしているか直観的に分かります。

6-6.まとめ

オブジェクト指向について色々記事にしましたが

・チーム開発しやすさ
・保守しやすさ

が大きな特徴・メリットとなります。
ただ、オブジェクト指向言語を使うだけで達成できるわけではなく、理解した上で設計しないと破綻することは注意が必要です。

。。。

といっても、それは昔の話かも。今はフレームワークが充実していて、ルールに従えば開発出来ます。
オブジェクト指向について深く理解しなくても良いのが開発における現状かもしれません。ちょっと寂しい。

でも、これらフレームワークの中身はほぼと言っていいほどオブジェクト指向により作られており、それを使う開発者が意識せずに済んでいます。

オブジェクト指向、感謝感謝。

大分記事が長くなってきましたが、オブジェクト指向についての記事は以上となります。

この記事が気に入ったらサポートをしてみませんか?