先日「牛尾氏の方法がいいと思った」と書いたけど、まつもとゆきひろ氏の感想は逆?らしいということで面白い。実は僕もオブジェクト指向勉強し始めのころは様々な「たとえ話」に惑わされきたので、たとえ話で「オブジェクト指向プログラミング」を理解するのは困難というのは良く分かってます。補足すると、牛尾氏の話で僕が良いと感じた所は、たとえ話の中にポリモルフィズムが最重要点として含まれていたことと、最後にプログラムとの対応付けがあったこと。
でも当の牛尾氏がオブジェクト指向を理解したという、マーチン・ファウラーの「リファクタリング」は、たとえ話とは無縁な本なんだよね。まあ、僕もあの本はOOP初心者にはオススメするのですが。
うーん、僕も完全な独学で相当無駄に長い時間をかけて理解してきたことなので、人に教えようとなると、結局どうしたらいいのか分からないな。今はデザインパターンとか具体例が色々あるんだから、確かに実際の使い方的なところから見ていくほうが近道なのかも。でもOO設計は最適解がよくわからないこともあり、具体的なことを教えるのって難しい(例えばドメインモデルがいいとか悪いとか)。たとえ話レベルで理解してないと、柔軟性に欠け、無意識でオブジェクト指向分析してしまうような真の「オブ脳」になれないような気がするのです。(OOAが良いかどうかは別として)