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