VacationVisitor.cs
class VacationVisitor(Visitor): # Visitor::ConcreteVisitor def __init__(self): self.totalDays = 0 def visit_Employee(self, emp): # visit(Employee emp) self.totalDays += emp.vacDays def visit_Boss(self, bos): # visit(Boss bos) self.totalDays += bos.vacDays
《Note》参考文献との違い
- 引数の型で処理を選択する代わりに、メソッド名に実行時の型情報を埋め込みます。