我是一名初级开发人员,希望更好地组织我的代码。
现在,我正在处理表单编号。我检索表单编号的哈希图,根据表单编号,我需要调用不同的方法。每个方法都接受相同的参数,但做的事情不同。
例如:
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中的每个表单编号收集详细信息。
-即使我要将这些方法转换为对象继承结构,我仍然需要一个switch语句来知道要实例化哪个子类,不是吗?switch语句与上面的语句类似吗?
-其中一些case语句正在调用完全相同的方法。有没有避免重复的方法?
谢谢你的帮助。我正在努力想办法更好地重新设计它。请让我知道,如果我可以提供更多的细节。
您可以将开关情况替换为if,否则如果,因为有多个条件具有相同的结果,它将减少重复。
var formDetails = new inferForms.buildFormsMap
for(form in formDetails){
var formNumber = form.formNumber
if(formNumber.equals("A1345") || formNumber.equals("A1345")){
getExclusionDetails(account, state, form, businessDealing)
} else if (formNumber.equals("B297") || formNumber.equals("C397")) {
getPartnershipDetails(account, state, form, businessDealing)
} else if (formNumber.equals("D972") || formNumber.equals("E192")) {
getBrokerageDetails(account, state, form, businessDealing)
} else if (formNumber.equals("F254") || formNumber.equals("F795")) {
getLocationDetails(account, state, form, businessDealing)
} else if (formNumber.equals("G642") || formNumber.equals("G979")) {
getContractDetails(period, wcmJurisdiction, newForm, wcmBusiness, frm)
}
}
我试图理解switch语句。所以我已经解决了这个问题。“软件公司销售的软件包零售价为99美元。数量折扣如下: 10-19=20% 20-49=30% 50-99=40% 100或更多=50% 编写一个程序,要求用户输入购买的软件包数量。然后,程序应显示折扣金额(如果有)和折扣后的购买总额。 我使用结构和几个关系运算符,它看起来像这样 我想知道是否可以将可能的数字范围存储在单个变量中,然后将其用于语
switch 语句可以替代多个 if 判断。 switch 语句为多分支选择的情况提供了一个更具描述性的方式。 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块。 就像这样: switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2':
使用 switch 语句可以更简洁地实现 if ~ else if 的结构。格式如下。 switch(base_expression) { casecondition_expression1: casecondition_expression2: : : default: : : } 写在 base_expression 位置的表达式会在刚开始时被求值。switch 后面的语句块中的 case
C# 中的 switch 语句有些类似于《 if else if 语句》,都可以根据表达式执行某个的语句块,其语法格式如下: switch(表达式){ case value1: //表达式的值为 value1 时,要执行的代码 break; case value2: //表达式的值为 value2 时,要执行的代码 break;
当条件判断分支太多的时候,我们会使用switch语句来优化逻辑。 package main import "fmt" import "time" func main() { // 基础的switch用法 i := 2 fmt.Print("write ", i, " as ") switch i { case 1: fmt.Println("
Swift 条件语句 switch 语句允许测试一个变量等于多个值时的情况。 Swift 语言中只要匹配到 case 语句,则整个 switch 语句执行完成。 语法 Swift 语言中 switch 语句的语法: switch expression { case expression1 : statement(s) fallthrough /* 可选 */