我有属于家庭的班级Foo( BabyFoo, MamaFoo, PapaFoo) 以及属于家庭的班级Bar( BabyBar, MamaBar, PapaBar)。在每个家庭中,很容易提及家庭成员。例如,当MamaFoo指代她自己的孩子时,她明确指代BabyFoo。但是在某些情况下,类在一个家族( , , )Lou的成员上运行代码而不知道哪个家族正在处理请求。BabyMamaPapa
如何Lou在 Java 中泛指任一家族的成员?
到目前为止,我的(糟糕的)解决方案是使用委托。Lou 不会对这两个家庭的成员运行代码。取而代之的是两个网关类FamilyFoo并FamilyBar处理来自Lou.
FamilyFooFamilyBar反过来又明确地提到了他们家庭中的阶级。这个解决方案结果很差,因为它会导致大量的代码重复,即使多态性(Lou委托给 a Family reference,两者的父级FamilyFooand FamilyBar)意味着实现了一些代码经济性。
你能做得更好吗?