ショートカット
ファシリテーター × あり方
コーディングの向こう側
Hello, ANOTHER world!
オブジェクト指向のはなし
プログラミングのはなし
C言語実力診断クイズ
eSkillBooks
オブジェクト指向のはなし

そんなにピュアじゃない

導入

オブジェクト指向ですべてが美しく解決するわけではありません。

解説

観察編」で見てきたように、オブジェクト指向は直感的に理解しやすい概念です。しかし現実のソフトウェア開発はそんなに単純ではありません。これはどうしたことでしょう?

要はモデル化にあります。一見複雑に見えるシステムでも、単純で理解しやすいモデルを導入すれば実はそれほど複雑ではなかったということがわかるのです。たとえば大きなシステムをより小さなサブシステムに分割することを考えてみましょう。何のモデル化もなしに分割をおこなっても複雑さは軽減しませんが、モジュール強度やモジュール結合度を意識して適切な分割をおこなえばシステムは単純化されます。これは分割方法がモデル化されているためです。

オブジェクト指向もひとつのモデル化です。つまり「ものの見方」や「考え方」です。理解しやすい見方をすることによって、システムを単純化するのです。というよりも、見方によって「システムは実のところ意外に単純だったのだ」ということに気づくのかも知れません。

理論だけではダメ

オブジェクト指向が身に付くと、どうしても欲目がでてきて、何でもかんでもオブジェクト化してみたくなるかもしれません。しかしオブジェクト指向と相性の悪いシステムも存在するでしょう。そういうシステムは、おそらく別の「見方」をすれば単純に見えるのですが、オブジェクト指向ではどうにもうまくいきません。

また、現実を無視して理論だけで「美しい」設計をしたくなるということがあるかもしれません。しかし、すべての問題に美しい解法が存在するわけではないのです。とくに、自分が設計担当で、コーディングはだれか別の人がやる、というような場合は注意した方が良いでしょう。

ま、そうはいっても、ほとんどのシステムはオブジェクト指向的な見方をすれば十分単純なんですが・・・。

(「オブジェクト指向のはなし」は1999年2月から2000年4月にかけて作成されたコンテンツです。)