我想用多态替换 switch 语句。让我们以 a 为例PostOffice。此邮局发送Letter's 和Package's,它们都是 的子类Mail。有发送不同类型的具体方式Mail,所以有LetterService和PackageService,这两者是MailService的
public class PostOffice {
@Inject
private LetterSender letterSender;
@Inject
private PackageSender packageSender;
public void send( Mail mail ) {
if ( mail instanceof Letter ) {
letterSender.send( (Letter) mail );
} else if ( mail instanceof Package ) {
packageSender.send( (Package) mail );
}
}
}
如何避免条件和实例?有人告诉我,您可以使用多态删除这些,但我仍然不明白如何将正确的类型“路由”Mail到正确的MailSender.
慕标琳琳
Helenr
白猪掌柜的
相关分类