【发布时间】:2022-06-11 00:39:11
【问题描述】:
我是一名初级开发人员,希望更好地组织我的代码。
现在,我正在处理表单编号。我检索表单编号的哈希映射,并且基于表单编号,我需要调用不同的方法。每个方法都接受相同的参数,但做的事情不同。
例如:
var formDetails = new inferForms.buildFormsMap
for(form in formDetails){
switch(form.formNumber){
case "A1345":
getExclusionDetails(account, state, form, businessDealing)
break
case "B254":
getExclusionDetails(account, state, form, businessDealing)
break
case "B297":
getPartnershipDetails(account, state, form, businessDealing)
break
case "C397":
getBrokerageDetails(account, state, form, businessDealing)
break
case "D972":
getBrokerageDetails(account, state, form, businessDealing)
break
case "E192":
getBrokerageDetails(account, state, form, businessDealing)
break
case "E299":
getBrokerageDetails(account, state, form, businessDealing)
break
case "F254":
getLocationDetails(account, state, form, businessDealing)
break
case "F795":
getLocationDetails(account, state, form, businessDealing)
break
case "G642":
getContractDetails(period, wcmJurisdiction, newForm, wcmBusiness, frm)
break
case "G979":
getContractDetails(period, wcmJurisdiction, newForm, wcmBusiness, frm)
break
}
}
一些注意事项:
-这些方法是由另一个开发人员构建的。他辞职了,所以我承担了他的工作,并希望进行重构以使其变得更好。
-起点是表格编号的HashMap。我生成 HashMap,然后循环遍历它以根据 HashMap 中的每个表单编号收集详细信息。
-即使我要将方法转换为对象继承结构,我仍然需要一个 switch 语句来知道要实例化哪个子类,不是吗? switch 语句会和上面的一样吗?
-其中一些 case 语句调用了完全相同的方法。有没有办法避免重复?
感谢您的所有帮助。我正在努力弄清楚如何更好地重新设计它。如果我可以提供更多详细信息,请告诉我。
【问题讨论】:
标签: java algorithm oop data-structures methods