JavaEE勉強会で小林さんが書いたコード(Enumに対するVisitorパターン)
ぼくのPCに入っているのでコピペしときます。
どういう文脈でこのコードがでてきたかというと、JPAの継承戦略つかわなくてもEnumでEntityごと同一Entityクラスのインスタンスごとに処理を振り分けられるよね、という話題からです。
public enum Hoge { FOO { public void accept(HogeSwitch sw) { sw.foo(); } }, BAR { public void accept(HogeSwitch sw) { sw.bar(); } }; public abstract void accept(HogeSwitch sw); public interface HogeSwitch { void foo(); void bar(); } }