レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

[オブジェクト指向][新人教育]モノをモデリングはできない。シナリオをモデリングするんだ。

前回の続き。

オブジェクト指向を教えるテキストや本は、大きな間違いを犯しています。

本来、オブジェクト指向の主な機能はクラスとオブジェクトを作ることです。

新人教育などで、紹介するときにはクラスとオブジェクトの説明だけで良くて、

継承やポリモフィズムは、初めはまったく紹介しなくてもいいくらいです。


それから

例えば、「『車』をモデリングします、車にはエンジンがあって、タイヤが4つあって、、、」

というモデリングを紹介するオブジェクト指向の本は多いようです。

しかしこれでは、目的を見失ってしまいます。


オブジェクト指向の目的は、現実世界をシンプルに捕らえることです。
 
どこまでシンプルにするかといえば、

対象シナリオに対して十分な程度」です。
 
先ほどの車のモデリングは、そのままやっても際限がありません。

エンジンのねじまでモデリング可能ですが意味はありません。
 

しかし、「車を運転すること」とすればシンプルにモデリングできます。

これはシナリオが存在するからです。
 

タクシーの業務とF1レースでは、同じ車でも

モデルとして抽出されるオブジェクトは異なるでしょう。

これはモノが異なるのではなく、シナリオが異なるのです。


オブジェクト指向の主要機能はクラスとオブジェクト。』


モデリングはシナリオに対して行う。』

これさえ説明してやれば、
 
あとのこと(継承、カプセル化ポリモフィズムデザインパターン)は、

全部オマケみたいなものです。