GoFの23パターンをそのまま解説している本が多く、事細かな制約があるかのように見えるせいか、かえって本質が捉えづらくなっている印象があります。23パターンがすべてではないし、このパターン自体パターンが言われ始めた初期に出されたもので、洗練されていないと思うのです。
そうなんだよなー.理解する過程でこれが本質なんじゃないの? とか思っても,どのページを見ても,どの本を読んでも「それが良い」とか「間違っている」と言っていない.単に原典をなぞっているだけのような気がしていた.
例えば,Chain of Responsibility パターンというのは,複数のサブクラスに対して順に処理を依頼するものが本質だと私は考えている.だから,Handler が next を持つ必要もないと思う.どちらかと言えば Handler が next を持ってしまうと,処理のみを行なうべきクラスに構造をも持たせてしまうことになるので,美しくないと思う.
他にも,Singleton の本質は,作成されるオブジェクトの数を限定することだと思っているのだが,ほとんどの紹介文では「オブジェクトをただ一つだけしか生成しないことを保証するものです」としか言われていない.
と,色々と思うことがあるのだが,これをいざ大学2年の学生に教えようと思ってもなかなか難しいんだよなぁ.教科書に書いてあることを否定しているように受けとる学生もいるだろうし,こっちの言葉不足も否定できない・・・.