如何针对不同内容的多个案例实现案例共享?

hel*_*one 0 java switch-statement

我得到一个switch语句,“ BMW”和“ Mercedes”案例共享几乎相同的内容,差异不大(更新方法)。

对于这些案例内容,我不想重复所有代码。有什么办法可以解决这个问题?

switch (car) {

  case "BMW":
    updateBmwSpecs();
    ...//Same code with Mercedes case
    break;

  case "Mercedes":
    updateMercedesSpecs();
    ...//Same code with BMW case
    break;

  case "Ferrari":
    //content
    break;

  ...//Remaining cases
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 5

没有任何更多信息,我在这里看到的唯一选择是提取具有该常用功能的辅助方法:

switch (car) {
    case "BMW":
        updateBmwSpecs();
        doCommon();
        break;

    case "Mercedes":
        updateMercedesSpecs();
        doCommon();
        break;

    case "Ferrari":
        break;

    // remaining cases
}

private void doCommon() {
    // do whatever logic be common to BMW and Mercedes
    // e.g. take joy rides through the city and get too many car washes
}
Run Code Online (Sandbox Code Playgroud)