重构实践之责任链模式
最近在开发过程中需要修改这样一段代码:
InvoiceSubmitter invoiceSubmitter;
if (是图书业务) {
if (是增值税专用发票) {
invoiceSubmitter = rjVatInvoiceSubmitter;
} else {
invoiceSubmitter = rjGeneralInvoiceSubmitter;
}
} else {
invoiceSubmitter = commonInvoiceSubmitter;
}
invoiceSubmitter.submitRequisition(order);
类图:

OrderFinishSupport直接关联InvoiceSubmitter接口,AbstractInvoiceSubmitter实现InvoiceSubmitter接口submitRequisition方法封装通用逻辑,并定义另外一个重载的submitRequisition方法供子类实现具体业务逻辑。
这是一段发票提交的逻辑,在我们系统的订单完成之后,需要根据用户提交的发票内容调用不同的接口将发票信息提交到发票系统,发票系统来完成为用户开具发票的工作。
This chapter requires login to view full content. You are viewing a preview.
Login to View Full Content