哪种设计模式最合适(如果有的话)

时间:2019-03-08 10:59:45

标签: java design-patterns

因此,此代码元素可能会变得很丑陋。有可能在每个if语句以及更多if / else语句中向列表添加多个元素。设计这段代码的最佳模式或方式是什么。我当时在考虑责任链,但这意味着将清单传递到所有地方,这不是最好的,甚至不是建设者模式?有什么想法吗?

    List<String> aList = new ArrayList<>();

    if (something.contains(Effect.HARD)) {
        aList.add("");
    }

    if (something.contains(Effect.REFLECT)) {
        aList.add("");
        aList.add("");
    } else {
        aList.add("no reflect");
    }

    if (something.contains(Effect.OUTLINE)) {
        aList.add("something");
    }

    if (something.contains(Effect.GRADIENT)) {
        aList.add("gradient");
    } else {
        aList.add("no gradient");
    }

1 个答案:

答案 0 :(得分:0)

通常,您会用多态代码替换这些难看的条件,但是由于条件(something.contains(...))不是基于对象的类型,因此在这里不能很好地工作。您可以将它们变成对象,但这也不是一个很好的解决方案。可以使用Builder和Visitor,但是我非常怀疑您的代码会更易读。