汎用的な形

ttp://d.hatena.ne.jp/w_o/20060613#p2のようなのは結局、単なるユーティリティ関数void move_logic(float &x, float &y, float &dx, float &dy);だのなんだのを各クラスのmoveから呼ぶのが一番汎用的じゃないかとか思ってたり……。Generics(親子関係がいる) < poly func(アクセサがいる) < C++ template(名前があってればいい) < D template(名前があってればいい + α) < 単なる関数(引数多くなってうざいがとりあえず名前すら自由)。
templateはフィールド(メンバ)の名前が結局グローバルみたくなってしまうのでよくある名前を使ってしまうと衝突しそうなあたりが、単なる関数に心が流れる理由かも。じゃあ名前を個別指定できるAdaならというと個別指定してく手間が関数に大量のパラメータを渡す手間を上回って、結局単なる関数に……。
あと余談ながら関数ポインタの使えるC++etcでわざわざJavaのStrategyの形を真似る意味は無くてC++etcでは乱暴に関数ポインタをStrategyと呼んでいいのではと思う。つまり単なる関数を交換可能にしたければ関数ポインタを使う、という、つまらない話に落ち着くような。
つまらなすぎるので自動トラックバック回避にh削った。