オブジェクトしこうは マヌーサを となえた!
はじめに
この記事は、オブジェクト指向と言う幻惑に包まれた人に届けたい記事となります。
オブジェクト指向やってるぜ!と言う勇者に読んでほしい記事です。
オブジェクト指向の幻惑1
Javaやってるからオブジェクト使ってます!
・・・
そんな訳はありません。
Javaもマルチパラグイムを採用しており、以下のスタイルでコーディング可能です。
- オブジェクト指向
- 手続き型
- 関数型
Java=オブジェクト指向となってしまってる原因は
Javaを広げるためのマーケティング用語としてオブジェクト指向というワードを使ってしまったから。
オブジェクト指向を正しく理解しない人を増やした犯人はJava自体だったわけです。
オブジェクト指向の幻惑2
データクラス作って、ロジッククラスを作って、役割毎にちゃんとクラスわけしてます
俺、オブジェクト指向やってるぜ!
・・・
それは手続き型です。
これは従来の開発スタイルが
機能毎に担当を別けて、機能毎に開発を行う、機能分割式のスタイルが多いために
手続き型と親和性が高く利用されるようになったと考えられます。
コロスケは マヌーハを となえた!
オブジェクト指向とは簡単に言うと、次の通りです
データクラスとロジッククラスを同じクラスに実装する
これが本来、オブジェクト指向が目指す「変更容易性」です。
具体的に「変更容易性」とは何なのか
オブジェクト指向
Aクラス(ロジック+データ)
Bクラス(ロジック+データ)
手続き型
データクラスα
データクラスαを使うAクラス(ロジック)
データクラスαを使うBクラス(ロジック)
この場合、データクラスに修正が入った場合、
同じデータクラスを使い回す手続き型では
Aクラス、Bクラスともに改修・テストの必要が出てきます。
オブジェクト指向の場合、Aクラスの方に修正が入っても
Bクラスは揺らぎません。
これがオブジェクト指向の真髄です。
ここまで読んでオブジェクト指向を利用してると言える人がいるでしょうか?
ここまで読んでオブジェクト指向に興味を持ったか方は以下
オブジェクト指向をきちんと使いたいあなたへ (Software Design別冊)