如何降低其复杂性?


问题内容

我有一个接收对象并根据其检测到的对象类型执行某些操作的方法:

void receive(Object object) {
    if (object instanceof ObjectTypeA) {
        doSomethingA();
    }
    else {
        if (object instanceof ObjectTypeB) {
            doSomethingB();
        }
        else {
            if (object instanceof ObjectTypeC) {
                doSomethingC();
            }
            else {
                if (object instanceof ObjectTypeD) {
                    doSomethingD();
                }
                else {
                    // etc...
                }
            }
        }
    }
}

如何降低环复杂性?我四处搜寻,但找不到任何有用的资讯。


问题答案:

您不能为此使用面向对象的方法吗?创建具有该doSomething()方法的接口,然后创建实现所需行为的子类?然后调用object.doSomething()将执行适当的行为?