Command pattern
http://en.wikipedia.org/wiki/Command_pattern
やっぱり、こういうスタイルの方がいいのかなぁ...
namespace EditorCommand { class Base { public: virtual void Execute(TextEditor& target) = 0; virtual ~Base() { } }; /** Cut Command */ class Cut : public Base { public: virtual void Execute(TextEditor& target) { std::string s = target.GetSelectedText(); target.DeleteRange(target.GetSelectStart(), target.GetSelectEnd()); Clipboard.Copy(s); } }; } // namespace EditorCommand
パターンだけ括り出すか…
と思ったけど、これだけだと括り出す必要もないね。