オブジェクト指向とドメインモデリング

オブジェクト指向の基本的な考え方は、カプセル化、継承、多態性、クラス、インスタンス等、特にプログラミング言語に依存せず、かつ人間にとって直感的でわかりやすいものだと思います。

そのため、ビジネス用途のシステム向けのアプリケーションを開発する際、業務問題領域(以後ドメインと呼ぶ)のモデリングオブジェクト指向を適用するのは、多くの場合は良いアイデアだと思います。

Eric Evans の Domain-Driven-Design では、ドメインモデルは Ubiquitous Language であるべきと書かれています。おいら流に噛み砕いて解釈すると(間違ってたらスマン)、ドメインモデルは何処にでもあって誰にでも理解できる言語として存在し、ビジネスニーズを持つお客様や、業務分析者や、システム開発者や、プロジェクト管理者や、その他利害関係者など、誰もが理解できる共通の言語であるべきだということだと思います。

つまり、プログラミングとか以前に、関係者全員がわかりやすい形でドメインをモデル化することが重要ということです。(もちろん、この目的に対して、オブジェクト指向よりも優れた方法論があればそちらを積極的に採用すべきであり、たとえばお客様のドメインが純粋な科学技術計算であれば、おそらくオブジェクト指向以外の方法論を採用すべきかもしれません。)

という理由で、おいらは結構ドメインモデルを気に入ってます。