instanceof
オブジェクトに switch case を使用する際の質問があります:
たとえば、私の問題は Java で再現できます。
if(this instanceof A)
doA();
else if(this instanceof B)
doB();
else if(this instanceof C)
doC():
どのように実装されますかswitch...case
?
ベストアンサー1
これはサブタイプポリモーフィズムが役立つ典型的なシナリオです。次の操作を行います。
interface I {
void do();
}
class A implements I { void do() { doA() } ... }
class B implements I { void do() { doB() } ... }
class C implements I { void do() { doC() } ... }
do()
その後は、を呼び出すだけですthis
。
A
、、を自由に変更できない場合はB
、C
ビジター パターンを適用して同じことを実現できます。