パターンとリファクタリング

結城浩

[PI] C MAGAZINEの連載記事をせっせと書いている。 プログラムはできた。あとは図と文章だ。 今回(次回)はGeneration Gapパターン。

[REF] C MAGAZINEではパターンの連載をしていて、 JAVA Developerではリファクタリングの連載をしています。 そして、パターンとリファクタリングの間には確かに深い関係があるなあ、と思います (『リファクタリング』の中にはパターンとリファクタリングの関連性が書かれています)。

たとえば「パターンを適用・導入する」というリファクタリングがいくつかあります。 「Template Methodパターンを適用する」のようなリファクタリングですね。 「State/Strategyパターンを適用する」なんていうのもありますね。 これらは、パターンを適用することで、 プログラムの機能を変えることなくソースコードの質を改善しています。 パターンが、リファクタリングに目標地点を与えるわけです。

ちょっと高い視点から見てみましょう。 リファクタリングという活動そのものは、 広い意味でのパターンといえるかもしれません。

実はこれらの内容は、JAVA Developer連載開始時から気にかかっていて、 1つの小さな試みをしています。 それは、JAVA Developer連載で記述している「リファクタリング・カタログ」を、 よりパターンっぽく書こうというものです。 まあ、半分自己満足のようなものですけれど。

ところで…こういう話を、私は原稿に書かなければならないのではあるまいか。仕事、仕事。

(2002年12月10日の日記から)

豊かな人生のための四つの法則